X-Git-Url: http://git.etherboot.org/mirror/winof/.git/blobdiff_plain/4cedf447f69753ed71ddf52bcb3c97bc016e8594..f6864bf41ef9467fd6ca613df91362dba27052c3:/ulp/ipoib/kernel/ipoib_driver.c diff --git a/ulp/ipoib/kernel/ipoib_driver.c b/ulp/ipoib/kernel/ipoib_driver.c index 04fa5bba..0b2b40f5 100644 --- a/ulp/ipoib/kernel/ipoib_driver.c +++ b/ulp/ipoib/kernel/ipoib_driver.c @@ -150,6 +150,8 @@ typedef struct _IPOIB_REG_ENTRY IPOIB_REG_ENTRY HCARegTable[] = { // reg value name If Required Offset in parentr struct Field size Default Min Max + {NDIS_STRING_CONST("GUIDMask"), 1, IPOIB_OFFSET(guid_mask), IPOIB_SIZE(guid_mask), 0, 0, MAX_GUID_MAX}, + /* GUIDMask should be the first element */ {NDIS_STRING_CONST("RqDepth"), 1, IPOIB_OFFSET(rq_depth), IPOIB_SIZE(rq_depth), 512, 128, 1024}, {NDIS_STRING_CONST("RqLowWatermark"), 0, IPOIB_OFFSET(rq_low_watermark), IPOIB_SIZE(rq_low_watermark), 4, 2, 8}, {NDIS_STRING_CONST("SqDepth"), 1, IPOIB_OFFSET(sq_depth), IPOIB_SIZE(sq_depth), 512, 128, 1024}, @@ -160,16 +162,14 @@ IPOIB_REG_ENTRY HCARegTable[] = { {NDIS_STRING_CONST("RecvRatio"), 1, IPOIB_OFFSET(recv_pool_ratio), IPOIB_SIZE(recv_pool_ratio), 1, 1, 10}, {NDIS_STRING_CONST("PayloadMtu"), 1, IPOIB_OFFSET(payload_mtu), IPOIB_SIZE(payload_mtu), 2044, 60, 4092}, {NDIS_STRING_CONST("lso"), 0, IPOIB_OFFSET(lso), IPOIB_SIZE(lso), 0, 0, 1}, - {NDIS_STRING_CONST("MCLeaveRescan"), 1, IPOIB_OFFSET(mc_leave_rescan), IPOIB_SIZE(mc_leave_rescan), 260, 1, 3600}, - {NDIS_STRING_CONST("GUIDMask"), 1, IPOIB_OFFSET(guid_mask), IPOIB_SIZE(guid_mask), 0, 0, MAX_GUID_MAX} - + {NDIS_STRING_CONST("MCLeaveRescan"), 1, IPOIB_OFFSET(mc_leave_rescan), IPOIB_SIZE(mc_leave_rescan), 260, 1, 3600} }; #define IPOIB_NUM_REG_PARAMS (sizeof (HCARegTable) / sizeof(IPOIB_REG_ENTRY)) -static void +void ipoib_create_log( NDIS_HANDLE h_adapter, UINT ind, @@ -484,13 +484,13 @@ ipoib_unload( NDIS_STATUS ipoib_get_adapter_params( IN NDIS_HANDLE* const wrapper_config_context, - IN OUT ipoib_adapter_t *p_adapter ) + IN OUT ipoib_adapter_t *p_adapter, + OUT PUCHAR *p_mac, + OUT UINT *p_len) { NDIS_STATUS status; NDIS_HANDLE h_config; NDIS_CONFIGURATION_PARAMETER *p_param; - PUCHAR mac; - UINT len; UINT value; PIPOIB_REG_ENTRY pRegEntry; UINT i; @@ -598,26 +598,8 @@ ipoib_get_adapter_params( p_adapter->params.rq_depth / p_adapter->params.rq_low_watermark; p_adapter->params.xfer_block_size = (sizeof(eth_hdr_t) + p_adapter->params.payload_mtu); - NdisReadNetworkAddress( &status, &mac, &len, h_config ); + NdisReadNetworkAddress( &status, p_mac, p_len, h_config ); - ETH_COPY_NETWORK_ADDRESS( p_adapter->params.conf_mac.addr, p_adapter->mac.addr ); - /* If there is a NetworkAddress override in registry, use it */ - if( (status == NDIS_STATUS_SUCCESS) && (len == HW_ADDR_LEN) ) - { - if( ETH_IS_MULTICAST(mac) || ETH_IS_BROADCAST(mac) || - !ETH_IS_LOCALLY_ADMINISTERED(mac) ) - { - IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_INIT, - ("Overriding NetworkAddress is invalid - " - "%02x-%02x-%02x-%02x-%02x-%02x\n", - mac[0], mac[1], mac[2], - mac[3], mac[4], mac[5]) ); - } - else - { - ETH_COPY_NETWORK_ADDRESS( p_adapter->params.conf_mac.addr, mac ); - } - } NdisCloseConfiguration( h_config );