lkml.org 
[lkml]   [2005]   [Sep]   [10]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateSat, 10 Sep 2005 17:07:04 -0400 (EDT)
FromAlan Stern <>
SubjectRe: [GIT PATCH] More PCI patches for 2.6.13
On Fri, 9 Sep 2005, Linus Torvalds wrote:
> 
> On Fri, 9 Sep 2005, Linus Torvalds wrote:
> > 
> > There are functions where it is really _important_ to check the error 
> > return, because they return errors often enough - and the error case is 
> > something you have to do something about - that it's good to force people 
> > to be aware.
> > 
> > But "pci_set_power_state()"?
> > 
> > I don't think so.
> 
> Btw, a perfect example of this is
> 
> 	pci_set_power_state(pdev, 0);
> 
> which is a very common thing to do in a driver init routine. And it has
> absolutely _no_ valid return values: it either succeeds, or it doesn't,
> and the only reason it wouldn't succeed is because the device doesn't
> support power management in the first place (in which case it already
> effectively is in state 0).
> 
> In other words, there's nothing you can or should do about it. Testing the 
> return value is pointless. And thus adding a "must_check" is really really 
> wrong: it might make people do
> 
> 	if (pci_set_power_state(pdev, 0))
> 		return -ENODEV
> 
> which is actually actively the _wrong_ thing to do, and would just cause 
> old revisions of the chip that might not support PM capabilities to no 
> longer work.

Funny you should say this -- exactly that problem _did_ arise.  See

http://marc.theaimsgroup.com/?l=linux-pci&m=112621842604724&w=2

pci_enable_device_bars() would an error when trying to initialize 
devices without PM support, because it started checking the return value
from pci_set_power_state().

Alan Stern

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-09-10 23:09    [W:0.359 / U:0.040 seconds]
©2003-2008 Jasper Spaans