Re: [PATCH 2/3] bus: mhi: Add inbound buffers allocation flag

From: Greg KH
Date: Sun Oct 17 2021 - 03:07:33 EST


On Sat, Oct 16, 2021 at 10:01:28PM +0530, Manivannan Sadhasivam wrote:
> On Sat, Oct 16, 2021 at 09:39:53AM +0200, Greg KH wrote:
> > On Sat, Oct 16, 2021 at 12:27:33PM +0530, Manivannan Sadhasivam wrote:
> > > From: Loic Poulain <loic.poulain@xxxxxxxxxx>
> > >
> > > Currently, the MHI controller driver defines which channels should
> > > have their inbound buffers allocated and queued. But ideally, this is
> > > something that should be decided by the MHI device driver instead,
> > > which actually deals with that buffers.
> > >
> > > Add a flag parameter to mhi_prepare_for_transfer allowing to specify
> > > if buffers have to be allocated and queued by the MHI stack.
> >
> > This is a horrible api. Now one has to go and look up why "0" was added
> > to a function as a parameter.
> >
> > If you don't want to allocate the buffer, then make a function of that
> > name and call that. As you only have one "flag", don't try to make
> > something generic here that is obviously not generic at all.
> >
>
> This is the only API that can be used by the client drivers to pass the
> configurations to the MHI stack. So we wanted to have a flags parameter that
> could be extended in the future also.

Worry about future issues then, in the future :)

> Regarding "0", the default behaviour is to not pre allocate the buffer at all.
> So it made less sense to add a separate flag or an API for that.

But again, this is now hard to understand and if you run across a '0' in
the call, you have to go and look it up, breaking your reading flow.

Please just create a new function for this new option, and then have
both of them call the common function with a boolean for this "allocate
or not" type of thing. We do this all the time in the kernel to make it
easier to read and understand over time.

thanks,

greg k-h