[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1468394693.25088.138.camel@coelho.fi>
Date: Wed, 13 Jul 2016 10:24:53 +0300
From: Luca Coelho <luca@...lho.fi>
To: Kalle Valo <kvalo@...eaurora.org>,
Prarit Bhargava <prarit@...hat.com>
Cc: "Grumbach, Emmanuel" <emmanuel.grumbach@...el.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
linuxwifi <linuxwifi@...el.com>,
"Berg, Johannes" <johannes.berg@...el.com>,
"Ivgi, Chaya Rachel" <chaya.rachel.ivgi@...el.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"Sharon, Sara" <sara.sharon@...el.com>,
"linux-wireless@...r.kernel.org" <linux-wireless@...r.kernel.org>
Subject: Re: [PATCH RESEND] iwlwifi, Do not implement thermal zone unless
ucode is loaded
On Wed, 2016-07-13 at 09:50 +0300, Kalle Valo wrote:
> Prarit Bhargava <prarit@...hat.com> writes:
>
> > > We implement thermal zone because we do support it, but the
> > > problem is
> > > that we need the firmware to be loaded for that. So you can argue
> > > that
> > > we should register *later* when the firmware is loaded. But this
> > > is
> > > really not helping all that much because the firmware can also be
> > > stopped at any time. So you'd want us to register / unregister
> > > the
> > > thermal zone anytime the firmware is loaded / unloaded?
> >
> > You might have to do that. I think that if the firmware enables a
> > feature then
> > the act of loading the firmware should run the code that enables
> > the feature.
> > IMO of course.
>
> But I suspect that the iwlwifi firmware is loaded during interface up
> (and unloaded during interface down) and in that case
> register/unregister would be happening all the time. That doesn't
> sound
> like a good idea. I would rather try to fix the thermal interface to
> handle the cases when the measurement is not available.
I totally agree with Emmanuel and Kalle. We should not change this.
It is a design decision to return an error when the interface is down,
this is very common with other subsystems as well. The userspace
should be able to handle errors and report something like "unavailable"
when this kind of error is returned.
I'm not sure EIO is the best we can have, but for me that's exactly
what it is. The thermal zone *is* there, but cannot be accessed
because the firmware is not available. I'm okay to change it to EBUSY,
if that would help userspace, but I think that's a bit misleading. The
device is not busy, on the contrary, it's not even running at all.
Furthermore, I don't think this is "breaking userspace" in the sense of
being a regression. The userspace API has always been implemented with
the possibility of returning errors. It's not a good design if a
single device returning an error causes all the other devices to also
fail.
--
Cheers,
Luca.
Powered by blists - more mailing lists