Merge pull request #19 in NXY/nxdrv-linux from bugfix/minor-fixes to main
* commit '86ff0cb4f8e368d46d00bd25df2c94b8aa31ddc9': [#####] - Add static library builds to gitignore. [NXDRVLINUX-150] - Fix "virteth" device allocation error, which led to an access violation at shutdown. [NXDRVLINUX-149] - Fix server/client connection establishment failure due to a time consuming (>timeout on client side) call of getnameinfo(). [NXDRVLINUX-148] - Add auto-loading of the kernel module for known PCI cards.
This commit is contained in:
commit
9920bf44f1
1
.gitignore
vendored
1
.gitignore
vendored
@ -1,3 +1,4 @@
|
|||||||
|
*.a
|
||||||
*.o
|
*.o
|
||||||
*.cmd*
|
*.cmd*
|
||||||
*.ko*
|
*.ko*
|
||||||
|
|||||||
@ -233,6 +233,16 @@ void* ServerThread(void* pvParam)
|
|||||||
/* print host-ip */
|
/* print host-ip */
|
||||||
printf("Connected with client : %s\n", inet_ntoa(tSockAddr.sin_addr));
|
printf("Connected with client : %s\n", inet_ntoa(tSockAddr.sin_addr));
|
||||||
|
|
||||||
|
/* NOTE: To prevent timeout on client side, as getnameinfo() may take */
|
||||||
|
/* more time, first start client thread then retrieve host name. */
|
||||||
|
if ( setsockopt(hClient, IPPROTO_TCP, TCP_NODELAY, (void*)&iNoDelay, sizeof(iNoDelay)) != 0 )
|
||||||
|
{
|
||||||
|
printf("The server is not able to send small packets.\n");
|
||||||
|
printf("So the communication could be very slow!\n");
|
||||||
|
}
|
||||||
|
ptTcpData->hClient = hClient;
|
||||||
|
pthread_create(&ptTcpData->hClientThread, NULL,ClientThread, (void*)ptTcpData);
|
||||||
|
|
||||||
/* Query remote name */
|
/* Query remote name */
|
||||||
if (0 == getnameinfo( (struct sockaddr *) &tSockAddr, sizeof (struct sockaddr),
|
if (0 == getnameinfo( (struct sockaddr *) &tSockAddr, sizeof (struct sockaddr),
|
||||||
szHostname,NI_MAXHOST, NULL, 0, 0))
|
szHostname,NI_MAXHOST, NULL, 0, 0))
|
||||||
@ -243,16 +253,6 @@ void* ServerThread(void* pvParam)
|
|||||||
{
|
{
|
||||||
printf("Host name unknown!\n");
|
printf("Host name unknown!\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( setsockopt(hClient, IPPROTO_TCP, TCP_NODELAY, (void*)&iNoDelay, sizeof(iNoDelay)) != 0 )
|
|
||||||
{
|
|
||||||
printf("The server is not able to send small packets.\n");
|
|
||||||
printf("So the communication could be very slow!\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
ptTcpData->hClient = hClient;
|
|
||||||
pthread_create(&ptTcpData->hClientThread, NULL,ClientThread, (void*)ptTcpData);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -264,19 +264,10 @@ void* cifxeth_create_device(NETX_ETH_DEV_CFG_T* config)
|
|||||||
|
|
||||||
/* Device successfully created */
|
/* Device successfully created */
|
||||||
OS_EnterLock( g_eth_list_lock);
|
OS_EnterLock( g_eth_list_lock);
|
||||||
if ((internal_dev = OS_Memalloc( sizeof(internal_dev))) != NULL)
|
TAILQ_INSERT_TAIL( &s_DeviceList, internal_dev, lentry);
|
||||||
{
|
ret = internal_dev;
|
||||||
TAILQ_INSERT_TAIL( &s_DeviceList, internal_dev, lentry);
|
|
||||||
ret = internal_dev;
|
|
||||||
}
|
|
||||||
OS_LeaveLock( g_eth_list_lock);
|
OS_LeaveLock( g_eth_list_lock);
|
||||||
if(NULL == ret)
|
return ret;
|
||||||
{
|
|
||||||
if(g_ulTraceLevel & TRACE_LEVEL_ERROR)
|
|
||||||
{
|
|
||||||
USER_Trace( internal_dev->devinst, TRACE_LEVEL_ERROR, "Ethernet-IF Error: Not enough memory to create cifx virtual ethernet interface!");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -289,6 +280,12 @@ void* cifxeth_create_device(NETX_ETH_DEV_CFG_T* config)
|
|||||||
{
|
{
|
||||||
cifxeth_delete_device( internal_dev);
|
cifxeth_delete_device( internal_dev);
|
||||||
}
|
}
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
if(g_ulTraceLevel & TRACE_LEVEL_ERROR)
|
||||||
|
{
|
||||||
|
USER_Trace( internal_dev->devinst, TRACE_LEVEL_ERROR, "Ethernet-IF Error: Not enough memory to create cifx virtual ethernet interface!");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
channel_no++;
|
channel_no++;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -566,6 +566,9 @@ static struct pci_device_id netx_pci_ids[] = {
|
|||||||
{ 0, }
|
{ 0, }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* publish PCI ids, to provide automatic load for known PCI cards */
|
||||||
|
MODULE_DEVICE_TABLE(pci, netx_pci_ids);
|
||||||
|
|
||||||
static struct pci_driver netx_pci_driver = {
|
static struct pci_driver netx_pci_driver = {
|
||||||
.name = "netx",
|
.name = "netx",
|
||||||
.id_table = netx_pci_ids,
|
.id_table = netx_pci_ids,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user