Subject: Re: [PATCH net-next v01 1/1] hinic3: module initialization and tx/rx logic

From: Jakub Kicinski <[email-masked]>
Date: Mon, 23 Dec 2024 07:39:55 -0800

On Sun, 22 Dec 2024 10:12:25 +0200 Gur Stavi wrote:
> > On Thu, 19 Dec 2024 11:21:55 +0200 Gur Stavi wrote:  
> > > +config HINIC3
> > > +	tristate "Huawei Intelligent Network Interface Card 3rd"
> > > +	# Fields of HW and management structures are little endian and will not
> > > +	# be explicitly converted  
> >
> > This is a PCIe device, users may plug it into any platform.
> > Please annotate the endian of the data structures and use appropriate
> > conversion helpers.
> 
> This is basically saying that all drivers MUST support all architectures
> which is not a currently documented requirement.
> As I said before, both Amazon and Microsoft have this dependency.
> They currently do not sell their HW so users cannot choose where to plug
> it, but they could start selling it whenever they want and the driver will
> remain the same.
> The primary goal of this driver is for VMs in Huawei cloud, just like
> Amazon and Microsoft. Whether users can actually buy it in the future is
> unknown.
> 
> for the record, we did start at some point to change all integer members
> in management structures to __leXX and use cpu_to_le and le_to_cpu.
> There are hundreds of these and it made the code completely unreadable.
> 
> And since we do not plan to test the driver on POWER or ARM big endian I
> really don't see the point.

I understand. But I'm concerned about the self-assured tone of the 
"it's not supported" message, that's very corporate verbiage. Annotating
endian is standard practice of writing upstream drivers. It makes me
doubt if you have any developers with upstream experience on your team
if you don't know that. That and the fact that Huawei usually tops 
the list of net-negative review contributors in netdev.