ltq-ifxos: add compatibility with kernel 5.15
set_fs is no longer supported since kernel 5.13 for mips. Signed-off-by: Jan Hoffmann <jan@3e8.eu> Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
This commit is contained in:
		 Jan Hoffmann
					Jan Hoffmann
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							d374e0346e
						
					
				
				
					commit
					e4c76e6fa3
				
			| @@ -22,3 +22,71 @@ | |||||||
|     if (pVirtAddr == IFX_NULL) |     if (pVirtAddr == IFX_NULL) | ||||||
|     { |     { | ||||||
|        IFXOS_PRN_USR_ERR_NL( IFXOS, IFXOS_PRN_LEVEL_ERR, |        IFXOS_PRN_USR_ERR_NL( IFXOS, IFXOS_PRN_LEVEL_ERR, | ||||||
|  | --- a/src/linux/ifxos_linux_socket_drv.c | ||||||
|  | +++ b/src/linux/ifxos_linux_socket_drv.c | ||||||
|  | @@ -165,8 +165,12 @@ IFX_int_t IFXOS_SocketRecvFrom( | ||||||
|  |     IFXOS_sockAddr_t *pSocAddr) | ||||||
|  |  { | ||||||
|  |     struct msghdr msg; | ||||||
|  | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0) | ||||||
|  |     struct iovec iov; | ||||||
|  |     mm_segment_t old_fs; | ||||||
|  | +#else | ||||||
|  | +   struct kvec iov; | ||||||
|  | +#endif | ||||||
|  |     int ret; | ||||||
|  |   | ||||||
|  |     IFXOS_RETURN_IF_POINTER_NULL(pBuffer, IFX_ERROR); | ||||||
|  | @@ -181,6 +185,8 @@ IFX_int_t IFXOS_SocketRecvFrom( | ||||||
|  |     msg.msg_controllen = 0; | ||||||
|  |     msg.msg_flags = 0; | ||||||
|  |   | ||||||
|  | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0) | ||||||
|  | + | ||||||
|  |  #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)) | ||||||
|  |     msg.msg_iov = &iov; | ||||||
|  |     msg.msg_iovlen = 1; | ||||||
|  | @@ -200,6 +206,10 @@ IFX_int_t IFXOS_SocketRecvFrom( | ||||||
|  |  #endif | ||||||
|  |     set_fs(old_fs); | ||||||
|  |   | ||||||
|  | +#else | ||||||
|  | +   ret = kernel_recvmsg (socFd, &msg, &iov, 1, bufSize_byte, 0); | ||||||
|  | +#endif | ||||||
|  | + | ||||||
|  |     return ret; | ||||||
|  |  } | ||||||
|  |   | ||||||
|  | @@ -229,8 +239,12 @@ IFX_int_t IFXOS_SocketSendTo( | ||||||
|  |                    IFXOS_sockAddr_t  *pSocAddr) | ||||||
|  |  { | ||||||
|  |     struct msghdr msg; | ||||||
|  | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0) | ||||||
|  |     struct iovec iov; | ||||||
|  |     mm_segment_t old_fs; | ||||||
|  | +#else | ||||||
|  | +   struct kvec iov; | ||||||
|  | +#endif | ||||||
|  |     int ret; | ||||||
|  |   | ||||||
|  |     IFXOS_RETURN_IF_POINTER_NULL(pBuffer, IFX_ERROR); | ||||||
|  | @@ -245,6 +259,8 @@ IFX_int_t IFXOS_SocketSendTo( | ||||||
|  |     msg.msg_controllen = 0; | ||||||
|  |     msg.msg_flags = MSG_DONTWAIT; | ||||||
|  |   | ||||||
|  | +#if LINUX_VERSION_CODE < KERNEL_VERSION(5,13,0) | ||||||
|  | + | ||||||
|  |  #if (LINUX_VERSION_CODE < KERNEL_VERSION(3,19,0)) | ||||||
|  |     msg.msg_iov = &iov; | ||||||
|  |     msg.msg_iovlen = 1; | ||||||
|  | @@ -264,6 +280,10 @@ IFX_int_t IFXOS_SocketSendTo( | ||||||
|  |  #endif | ||||||
|  |     set_fs(old_fs); | ||||||
|  |   | ||||||
|  | +#else | ||||||
|  | +   ret = kernel_sendmsg(socFd, &msg, &iov, 1, bufSize_byte); | ||||||
|  | +#endif | ||||||
|  | + | ||||||
|  |     return ret; | ||||||
|  |  } | ||||||
|  |   | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user