<br><font size=2><tt>    Fab> Shouldn't a user get an error
(not an oops) if they try to<br>
    Fab> use the MAD layer for a device that didn't initialize<br>
    Fab> properly within the MAD layer?  Doesn't the
MAD layer trap<br>
    Fab> that device requests are valid?  It seems that
adding such<br>
    Fab> checks would be much simpler to implement, rather
than trying<br>
    Fab> to figure out how to express these limitations to
the various<br>
    Fab> ULPs.<br>
<br>
> Yeah, I guess that makes sense, although it exercises the upper<br>
> layers' error paths more.  All of the modules that export interfaces<br>
> used by other layers have to be prepared for a device that they failed<br>
> to initialize, and the upper layers have to be prepared for lower<br>
> layers to fail.</tt></font>
<br>
<br><font size=2 face="sans-serif">These two approches are both need to
go through each layer. The difference is one prevents the error happen
earlier, another one detects the error later, which would be a better solution
if the error could happen later.</font>
<br><font size=2 face="sans-serif"> </font>
<br><font size=2 face="sans-serif">It's necessary to modify the ib_mad,
ib_sa, ib_cm, just act like ib_ipoib and ib_cache to continue initializing
when one port encounting errors, instead of releasing all resouces. If
you agree, I am creating as the first patch for review. How to handler
the errors would be the second patch.<br>
</font>
<br><font size=2 face="sans-serif">Thanks<br>
Shirley Ma<br>
IBM Linux Technology Center<br>
15300 SW Koll Parkway<br>
Beaverton, OR 97006-6063<br>
Phone(Fax): (503) 578-7638<br>
<br>
</font>