[ofw] RE: IPoIB_NDIS6_CM status - failure to compile ?

Smith, Stan stan.smith at intel.com
Tue Dec 1 08:17:44 PST 2009


Smith, Stan wrote:
> Gentlemen,
>   Do you have a fix for the following compile errors?
>
> Compiling - kernel\ipoib_adapter.cpp
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2065:
> 'WPP_BIT_IPOIB_DBG_ALL' : undeclared identifier
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2228:
> left of '.Control' must have class/struct/union
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2228:
> left of '.Flags' must have class/struct/union
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2065:
> 'WPP_BIT_IPOIB_DBG_ALL' : undeclared identifier
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2065:
> 'WPP_BIT_IPOIB_DBG_ALL' : undeclared identifier
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2065:
> 'WPP_BIT_IPOIB_DBG_ALL' : undeclared identifier
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2228:
> left of '.Control' must have class/struct/union
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2228:
> left of '.Level' must have class/struct/union
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2065:
> 'WPP_BIT_IPOIB_DBG_ALL' : undeclared identifier
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2228:
> left of '.Control' must have class/struct/union
> 1>ulp\ipoib_ndis6_cm\kernel\ipoib_adapter.cpp(679) : error C2228:
> left of '.Logger' must have class/struct/union

After implementing a compile workaround, I now find both IPoIB versions no longer work.
Work defined as the IPoIB instances never appear as network devices?

After spending time tracking down changes, both NDIS 5.3 & NDIS 6 IPoIB versions have changed what ipoib_get_adapter_parms() returns. Previously, NDIS_STATUS_SUCCESS was returned, now the status return from NdisReadNetworkAddress() is returned which is not NDIS_STATUS_SUCCESS?

For the NDIS 5 version, the ipoib_get_adapter_parms() return and p_stat handling were the only changes; no explanation as to why NdisReadNetworkAddress() would be failing, assumption is that the call has failed for some time.
Temporarily fixing ipoib_get_adapter_parms() to return NDIS_STATUS_SUCCESS, led me to the next NDIS 5 ipoib crash.
Comparing code between NDIS 5 & NDIS 6 versions I find in ipoib-adapter.c in __ipoib_pnp_cb() PORT_UP handling @ line 648 a missing 'if (p_adapter->p_stat)' protecting 'p_adapter->p_stat->p_prev_port = p_adapter->p_port;' statement as p_stat is at times NULL?

Would you please examine the failures and suggest 'real' fixes.

Stan.







More information about the ofw mailing list