Merge Official Source
Signed-off-by: Tianling Shen <cnsztl@immortalwrt.org>
This commit is contained in:
commit
07089cedb8
@ -1,2 +1,2 @@
|
||||
LINUX_VERSION-6.6 = .78
|
||||
LINUX_KERNEL_HASH-6.6.78 = 5aa39a9bd555133ad741058f9908a277e6b36bb928481e747d885b50aaaa93ed
|
||||
LINUX_VERSION-6.6 = .79
|
||||
LINUX_KERNEL_HASH-6.6.79 = 07a6f904470da1a099aa1683e3025a999dd82f2438f78b006b80c6ae2e9dfe8d
|
||||
|
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=linux-firmware
|
||||
PKG_VERSION:=20241110
|
||||
PKG_VERSION:=20250211
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_HASH:=32e6d3eb5c7fcb69fe5d58976c6deafa0d6552719c6e74835064aff049d25bd7
|
||||
PKG_HASH:=2de1345897bf839d532c5de0fdb348770ca2a5f4edfb21971582597abb45297d
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
@ -1,14 +1,14 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=wireless-regdb
|
||||
PKG_VERSION:=2024.10.07
|
||||
PKG_VERSION:=2025.02.20
|
||||
PKG_RELEASE:=1
|
||||
PKG_LICENSE:=ISC
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
||||
PKG_HASH:=f76f2bd79a653e9f9dd50548d99d03a4a4eb157da056dfd5892f403ec28fb3d5
|
||||
PKG_HASH:=57f8e7721cf5a880c13ae0c202edbb21092a060d45f9e9c59bcd2a8272bfa456
|
||||
|
||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/db.txt
|
||||
+++ b/db.txt
|
||||
@@ -421,9 +421,8 @@ country CL: DFS-JP
|
||||
@@ -425,9 +425,8 @@ country CL: DFS-JP
|
||||
# https://www.miit.gov.cn/cms_files/filemanager/1226211233/attach/20236/d1dc19424d5a4cfe90d631adeee8dd58.pdf
|
||||
# Note: The transmit power for 5250-5350MHz bands can be raised by 3dBm when TPC is implemented
|
||||
country CN: DFS-FCC
|
||||
@ -12,7 +12,7 @@
|
||||
(5725 - 5850 @ 80), (33)
|
||||
# 60 GHz band channels 1,4: 28dBm, channels 2,3: 44dBm
|
||||
# ref: http://www.miit.gov.cn/n11293472/n11505629/n11506593/n11960250/n11960606/n11960700/n12330791.files/n12330790.pdf
|
||||
@@ -1916,14 +1915,12 @@ country US: DFS-FCC
|
||||
@@ -1940,14 +1939,12 @@ country US: DFS-FCC
|
||||
(920 - 928 @ 8), (30)
|
||||
(2400 - 2472 @ 40), (30)
|
||||
# 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients
|
||||
|
@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ltq-vdsl-vr11-mei
|
||||
PKG_VERSION:=1.11.1
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
PKG_BASE_NAME:=dsl_cpe_mei
|
||||
|
||||
UGW_VERSION=8.5.2.10
|
||||
|
@ -0,0 +1,47 @@
|
||||
This removes -static compile option. The -static option tells GCC to
|
||||
link this statically with the libc, which we do not want in OpenWrt. We
|
||||
want to link everything dynamically to the libc. This fixes a compile
|
||||
problem with glibc.
|
||||
|
||||
--- a/src/Makefile.am
|
||||
+++ b/src/Makefile.am
|
||||
@@ -198,10 +198,10 @@ AM_CFLAGS = -Wall -Wimplicit -Wunused -W
|
||||
|
||||
if IFXOS_ENABLE
|
||||
AM_LDFLAGS= \
|
||||
- -Bstatic -dn -static @IFXOS_LIBRARY_PATH@
|
||||
+ -Bstatic -dn @IFXOS_LIBRARY_PATH@
|
||||
else
|
||||
AM_LDFLAGS= \
|
||||
- -Bstatic -dn -static
|
||||
+ -Bstatic -dn
|
||||
endif
|
||||
|
||||
#
|
||||
@@ -302,7 +302,7 @@ mei_cpe_appl_ldflags= $(ADD_APPL_LDFLAGS
|
||||
else
|
||||
if TARGET_ADM5120_MIPSEL
|
||||
mei_cpe_appl_cflags = -O1 -g
|
||||
-mei_cpe_appl_ldflags = -static
|
||||
+mei_cpe_appl_ldflags =
|
||||
else
|
||||
mei_cpe_appl_cflags = -DPPC
|
||||
endif
|
||||
@@ -335,7 +335,7 @@ endif
|
||||
mei_cpe_drv_test_CFLAGS = $(mei_cpe_app_common_cflags) \
|
||||
$(mei_cpe_appl_cflags) $(MEI_DRV_TARGET_OPTIONS)
|
||||
|
||||
-mei_cpe_drv_test_LDFLAGS = $(mei_cpe_appl_ldflags) -Bstatic -dn -static @IFXOS_LIBRARY_PATH@ \
|
||||
+mei_cpe_drv_test_LDFLAGS = $(mei_cpe_appl_ldflags) -Bstatic -dn @IFXOS_LIBRARY_PATH@ \
|
||||
$(dsl_cpe_mei_LDFLAGS)
|
||||
|
||||
mei_cpe_drv_test_LDADD = -lifxos $(dsl_cpe_mei_LDADD)
|
||||
@@ -356,7 +356,7 @@ endif
|
||||
|
||||
mei_cpe_drv_dbg_strm_dmp_CFLAGS = $(mei_cpe_app_common_cflags) \
|
||||
$(mei_cpe_appl_cflags) $(MEI_DRV_TARGET_OPTIONS)
|
||||
-mei_cpe_drv_dbg_strm_dmp_LDFLAGS = $(mei_cpe_appl_ldflags) -Bstatic -dn -static @IFXOS_LIBRARY_PATH@ \
|
||||
+mei_cpe_drv_dbg_strm_dmp_LDFLAGS = $(mei_cpe_appl_ldflags) -Bstatic -dn @IFXOS_LIBRARY_PATH@ \
|
||||
$(dsl_cpe_mei_LDFLAGS)
|
||||
mei_cpe_drv_dbg_strm_dmp_LDADD = -lifxos $(dsl_cpe_mei_LDADD)
|
||||
|
@ -10,13 +10,11 @@
|
||||
|
||||
--- a/src/drv_mei_cpe_linux.h
|
||||
+++ b/src/drv_mei_cpe_linux.h
|
||||
@@ -110,6 +110,10 @@ typedef irqreturn_t (*usedIsrHandler_t)(
|
||||
@@ -110,6 +110,8 @@ typedef irqreturn_t (*usedIsrHandler_t)(
|
||||
# endif
|
||||
#endif
|
||||
|
||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0))
|
||||
+#define PDE_DATA pde_data
|
||||
+#endif
|
||||
+
|
||||
/**
|
||||
Function typedef for the Linux request_threaded_irq()
|
||||
|
@ -1,14 +1,11 @@
|
||||
--- a/src/drv_mei_cpe_linux.c
|
||||
+++ b/src/drv_mei_cpe_linux.c
|
||||
@@ -2779,7 +2779,11 @@ static int MEI_InitModuleRegCharDev(cons
|
||||
@@ -2779,7 +2779,7 @@ static int MEI_InitModuleRegCharDev(cons
|
||||
("Using major number %d" MEI_DRV_CRLF, MAJOR(mei_devt)));
|
||||
}
|
||||
|
||||
+#if LINUX_VERSION_CODE < KERNEL_VERSION(6, 4, 0)
|
||||
mei_class = class_create(THIS_MODULE, devName);
|
||||
+#else
|
||||
- mei_class = class_create(THIS_MODULE, devName);
|
||||
+ mei_class = class_create(devName);
|
||||
+#endif
|
||||
if (IS_ERR(mei_class))
|
||||
{
|
||||
PRN_DBG_USR_NL( MEI_DRV,MEI_DRV_PRN_LEVEL_HIGH,
|
||||
|
@ -0,0 +1,179 @@
|
||||
--- a/src/cmv_message_format.h
|
||||
+++ b/src/cmv_message_format.h
|
||||
@@ -308,7 +308,7 @@ typedef struct cmv_std_message_header_s
|
||||
unsigned short index;
|
||||
/** CMV length */
|
||||
unsigned short length;
|
||||
-} CMV_STD_MESSAGE_HEADER_T;
|
||||
+} __attribute__((packed)) CMV_STD_MESSAGE_HEADER_T;
|
||||
|
||||
/**
|
||||
CMV payload paramaters (8, 16, 32 Bit)
|
||||
@@ -318,7 +318,7 @@ typedef union cmv_std_message_payload_s
|
||||
unsigned char params_8Bit[CMV_USED_PAYLOAD_8BIT_SIZE];
|
||||
unsigned short params_16Bit[CMV_USED_PAYLOAD_16BIT_SIZE];
|
||||
unsigned int params_32Bit[CMV_USED_PAYLOAD_32BIT_SIZE];
|
||||
-} CMV_STD_MESSAGE_PAYLOAD_T;
|
||||
+} __attribute__((packed)) CMV_STD_MESSAGE_PAYLOAD_T;
|
||||
|
||||
/**
|
||||
CMV Standard message.
|
||||
@@ -327,7 +327,7 @@ typedef struct cmv_std_message_s
|
||||
{
|
||||
CMV_STD_MESSAGE_HEADER_T header;
|
||||
CMV_STD_MESSAGE_PAYLOAD_T payload;
|
||||
-} CMV_STD_MESSAGE_T;
|
||||
+} __attribute__((packed)) CMV_STD_MESSAGE_T;
|
||||
|
||||
|
||||
/* ============================================================================
|
||||
@@ -341,7 +341,7 @@ typedef struct cmv_message_modem_rdy_s
|
||||
{
|
||||
CMV_STD_MESSAGE_HEADER_T header;
|
||||
CMV_STD_MESSAGE_PAYLOAD_T modemRdyParams;
|
||||
-} CMV_MESSAGE_MODEM_RDY_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_MODEM_RDY_T;
|
||||
|
||||
|
||||
/* ============================================================================
|
||||
@@ -358,7 +358,7 @@ typedef struct cmv_message_modem_rdy_s
|
||||
typedef struct cmv_message_cs_static_params_s
|
||||
{
|
||||
unsigned short pageIdx[MEI_CMV_CODESWAP_MAX_PAGES];
|
||||
-} CMV_MESSAGE_CS_STATIC_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_CS_STATIC_PARAMS_T;
|
||||
|
||||
|
||||
typedef struct cmv_dyn_codeswap_page_info_s
|
||||
@@ -366,7 +366,7 @@ typedef struct cmv_dyn_codeswap_page_inf
|
||||
unsigned short pageIdx;
|
||||
unsigned short h_destAddr;
|
||||
unsigned short l_destAddr;
|
||||
-} CMV_DYN_CODESWAP_PAGE_INFO_T;
|
||||
+} __attribute__((packed)) CMV_DYN_CODESWAP_PAGE_INFO_T;
|
||||
|
||||
/**
|
||||
CMV codeswap message payload (dynamic).
|
||||
@@ -374,7 +374,7 @@ typedef struct cmv_dyn_codeswap_page_inf
|
||||
typedef struct cmv_message_cs_dyn_params_s
|
||||
{
|
||||
CMV_DYN_CODESWAP_PAGE_INFO_T pageInfo[MEI_CMV_CODESWAP_MAX_PAGES];
|
||||
-} CMV_MESSAGE_CS_DYN_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_CS_DYN_PARAMS_T;
|
||||
|
||||
|
||||
/**
|
||||
@@ -388,7 +388,7 @@ typedef struct cmv_message_cs_s
|
||||
CMV_MESSAGE_CS_STATIC_PARAMS_T csStaticParams;
|
||||
CMV_MESSAGE_CS_DYN_PARAMS_T csDynParams;
|
||||
} params;
|
||||
-} CMV_MESSAGE_CS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_CS_T;
|
||||
|
||||
/* ============================================================================
|
||||
CMV Fast Read request message definitions
|
||||
@@ -406,7 +406,7 @@ typedef struct cmv_fast_read_params_s
|
||||
unsigned short addrMSW;
|
||||
unsigned short addrLSW;
|
||||
unsigned short size_16bit;
|
||||
-} CMV_FAST_READ_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_FAST_READ_PARAMS_T;
|
||||
|
||||
/**
|
||||
CMV fast read message payload.
|
||||
@@ -414,7 +414,7 @@ typedef struct cmv_fast_read_params_s
|
||||
typedef struct cmv_message_fast_rd_params_s
|
||||
{
|
||||
unsigned short fastRdpage[MEI_CMV_FAST_READ_MAX_PAGES];
|
||||
-} CMV_MESSAGE_FAST_RD_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_FAST_RD_PARAMS_T;
|
||||
|
||||
/**
|
||||
CMV codeswap message.
|
||||
@@ -423,7 +423,7 @@ typedef struct cmv_message_fast_rd_s
|
||||
{
|
||||
CMV_STD_MESSAGE_HEADER_T header;
|
||||
CMV_MESSAGE_FAST_RD_PARAMS_T fastRdParams;
|
||||
-} CMV_MESSAGE_FAST_RD_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_FAST_RD_T;
|
||||
|
||||
/**
|
||||
CMV messages
|
||||
@@ -435,7 +435,7 @@ typedef union cmv_message_all_s
|
||||
CMV_MESSAGE_CS_T codeSwap;
|
||||
CMV_MESSAGE_FAST_RD_T fastRd;
|
||||
unsigned short rawMsg[CMV_HEADER_16BIT_SIZE + CMV_USED_PAYLOAD_16BIT_SIZE];
|
||||
-} CMV_MESSAGE_ALL_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_ALL_T;
|
||||
|
||||
|
||||
|
||||
--- a/src/drv_mei_cpe_mailbox.h
|
||||
+++ b/src/drv_mei_cpe_mailbox.h
|
||||
@@ -202,7 +202,7 @@ typedef union MEI_cmv_mailbox_s
|
||||
CMV_MESSAGE_CS_T codeSwap;
|
||||
/** CMV Fast Read message */
|
||||
CMV_MESSAGE_FAST_RD_T fastRd;
|
||||
-} MEI_CMV_MAILBOX_T;
|
||||
+} __attribute__((packed)) MEI_CMV_MAILBOX_T;
|
||||
|
||||
|
||||
/**
|
||||
@@ -211,7 +211,7 @@ typedef union MEI_cmv_mailbox_s
|
||||
typedef struct MEI_mei_mailbox_raw_s
|
||||
{
|
||||
IFX_uint16_t rawMsg[CMV_HEADER_16BIT_SIZE + CMV_USED_PAYLOAD_16BIT_SIZE];
|
||||
-} MEI_MEI_MAILBOX_RAW_T;
|
||||
+} __attribute__((packed)) MEI_MEI_MAILBOX_RAW_T;
|
||||
|
||||
|
||||
/**
|
||||
@@ -223,7 +223,7 @@ typedef union MEI_mei_mailbox_s
|
||||
MEI_MEI_MAILBOX_RAW_T mbRaw;
|
||||
/** CMV message type */
|
||||
MEI_CMV_MAILBOX_T mbCmv;
|
||||
-} MEI_MEI_MAILBOX_T;
|
||||
+} __attribute__((packed)) MEI_MEI_MAILBOX_T;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
--- a/src/drv_mei_cpe_msg_process.c
|
||||
+++ b/src/drv_mei_cpe_msg_process.c
|
||||
@@ -2215,7 +2215,7 @@ MEI_STATIC IFX_int32_t MEI_ModemNfcRead(
|
||||
Return IFX/modem message
|
||||
- index and length fields becomes part of the appl. payload
|
||||
*/
|
||||
- pSource = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pSource = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
/* size field contains number of 16 bit payload elements of the message */
|
||||
paylSize_byte = (CMV_MSGHDR_PAYLOAD_SIZE_GET(pMailbox->mbCmv.cmv)) << CMV_MSG_BIT_SIZE_16BIT;
|
||||
@@ -3551,7 +3551,7 @@ IFX_int32_t MEI_IoctlCmdMsgWrite(
|
||||
*/
|
||||
cmvMbSize = CMV_HEADER_8BIT_SIZE +
|
||||
pUserMsg->paylSize_byte - (sizeof(IFX_uint16_t) * 2);
|
||||
- pDestPtr = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pDestPtr = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
if ( cmvMbSize > (int)(sizeof(MEI_CMV_MAILBOX_T)) )
|
||||
{
|
||||
@@ -3665,7 +3665,7 @@ IFX_int32_t MEI_IoctlAckMsgRead(
|
||||
Return IFX/modem message
|
||||
- index and length fields becomes part of the appl. payload
|
||||
*/
|
||||
- pSource = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pSource = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
/* size field contains number of 16 bit payload elements of the message */
|
||||
paylSize_byte = (CMV_MSGHDR_PAYLOAD_SIZE_GET(pMailbox->mbCmv.cmv)) << CMV_MSG_BIT_SIZE_16BIT;
|
||||
--- a/src/drv_mei_cpe_msg_process_ar9.c
|
||||
+++ b/src/drv_mei_cpe_msg_process_ar9.c
|
||||
@@ -1385,7 +1385,7 @@ MEI_STATIC IFX_int32_t MEI_ModemNfcRead(
|
||||
Return IFX/modem message
|
||||
- index and length fields becomes part of the appl. payload
|
||||
*/
|
||||
- pSource = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pSource = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
/* size field contains number of 16 bit payload elements of the message */
|
||||
paylSize_byte = (CMV_MSGHDR_PAYLOAD_SIZE_GET(pMailbox->mbCmv.cmv)) << CMV_MSG_BIT_SIZE_16BIT;
|
@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ltq-vdsl-vr11
|
||||
PKG_VERSION:=4.23.1
|
||||
PKG_RELEASE:=3
|
||||
PKG_RELEASE:=4
|
||||
PKG_BASE_NAME:=dsl_cpe_api
|
||||
|
||||
UGW_VERSION=8.5.2.10
|
||||
|
@ -0,0 +1,46 @@
|
||||
Add option for L3 request without retry on failure
|
||||
|
||||
This allows to attempt an orderly shutdown via L3 request while avoiding
|
||||
excessive delay in the failure case (up to 6 seconds with the currently
|
||||
hard-coded 3 attempts).
|
||||
--- a/src/g997/drv_dsl_cpe_api_g997_vrx.c
|
||||
+++ b/src/g997/drv_dsl_cpe_api_g997_vrx.c
|
||||
@@ -1053,6 +1053,7 @@ DSL_Error_t DSL_DRV_DEV_G997_PowerManage
|
||||
{
|
||||
DSL_Error_t nErrCode = DSL_SUCCESS, nRet = DSL_SUCCESS;
|
||||
DSL_int_t nAttempt = 0, i = 0;
|
||||
+ DSL_int_t nAttemptCount = DSL_LX_TO_L3_ATTEMPT_COUNT;
|
||||
const DSL_int_t nMaxRetry = DSL_LX_TO_L3_TIMEOUT/DSL_L3_WAIT_INTERVAL;
|
||||
DSL_G997_PowerManagementStatusData_t PmStatus = {DSL_G997_PMS_NA};
|
||||
DSL_VRX_L3RequestStatus_t L3RequestStatus = DSL_VRX_L3_STATUS_NA;
|
||||
@@ -1095,11 +1096,15 @@ DSL_Error_t DSL_DRV_DEV_G997_PowerManage
|
||||
nErrCode = DSL_ERR_NOT_SUPPORTED_BY_DEVICE;
|
||||
break;
|
||||
|
||||
+ case DSL_G997_PMSF_LX_TO_L3_NO_RETRY:
|
||||
+ nAttemptCount = 1;
|
||||
+ fallthrough;
|
||||
+
|
||||
case DSL_G997_PMSF_LX_TO_L3:
|
||||
if (PmStatus.nPowerManagementStatus != DSL_G997_PMS_L3)
|
||||
{
|
||||
/* retry it DSL_LX_TO_L3_ATTEMPT_COUNT times */
|
||||
- for (nAttempt = 0; nAttempt < DSL_LX_TO_L3_ATTEMPT_COUNT; nAttempt++)
|
||||
+ for (nAttempt = 0; nAttempt < nAttemptCount; nAttempt++)
|
||||
{
|
||||
/* L3 shutdown request*/
|
||||
nErrCode = DSL_DRV_VRX_SendMsgShutdownRequest(pContext);
|
||||
--- a/src/include/drv_dsl_cpe_api_g997.h
|
||||
+++ b/src/include/drv_dsl_cpe_api_g997.h
|
||||
@@ -1199,7 +1199,10 @@ typedef enum
|
||||
procedure. After reaching the L3 state, the line shall remain in the L3 idle
|
||||
state until it is forced into another state through this configuration
|
||||
parameter. */
|
||||
- DSL_G997_PMSF_LX_TO_L3 = 3
|
||||
+ DSL_G997_PMSF_LX_TO_L3 = 3,
|
||||
+ /**
|
||||
+ Same as above, but does not retry in case of failure. */
|
||||
+ DSL_G997_PMSF_LX_TO_L3_NO_RETRY = 4
|
||||
} DSL_G997_PowerManagementStateForce_t;
|
||||
|
||||
/**
|
@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ltq-vdsl-vr9-mei
|
||||
PKG_VERSION:=1.5.17.6
|
||||
PKG_RELEASE:=6
|
||||
PKG_RELEASE:=7
|
||||
|
||||
PKG_BASE_NAME:=drv_mei_cpe
|
||||
PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
|
||||
|
@ -0,0 +1,179 @@
|
||||
--- a/src/cmv_message_format.h
|
||||
+++ b/src/cmv_message_format.h
|
||||
@@ -308,7 +308,7 @@ typedef struct cmv_std_message_header_s
|
||||
unsigned short index;
|
||||
/** CMV length */
|
||||
unsigned short length;
|
||||
-} CMV_STD_MESSAGE_HEADER_T;
|
||||
+} __attribute__((packed)) CMV_STD_MESSAGE_HEADER_T;
|
||||
|
||||
/**
|
||||
CMV payload paramaters (8, 16, 32 Bit)
|
||||
@@ -318,7 +318,7 @@ typedef union cmv_std_message_payload_s
|
||||
unsigned char params_8Bit[CMV_USED_PAYLOAD_8BIT_SIZE];
|
||||
unsigned short params_16Bit[CMV_USED_PAYLOAD_16BIT_SIZE];
|
||||
unsigned int params_32Bit[CMV_USED_PAYLOAD_32BIT_SIZE];
|
||||
-} CMV_STD_MESSAGE_PAYLOAD_T;
|
||||
+} __attribute__((packed)) CMV_STD_MESSAGE_PAYLOAD_T;
|
||||
|
||||
/**
|
||||
CMV Standard message.
|
||||
@@ -327,7 +327,7 @@ typedef struct cmv_std_message_s
|
||||
{
|
||||
CMV_STD_MESSAGE_HEADER_T header;
|
||||
CMV_STD_MESSAGE_PAYLOAD_T payload;
|
||||
-} CMV_STD_MESSAGE_T;
|
||||
+} __attribute__((packed)) CMV_STD_MESSAGE_T;
|
||||
|
||||
|
||||
/* ============================================================================
|
||||
@@ -341,7 +341,7 @@ typedef struct cmv_message_modem_rdy_s
|
||||
{
|
||||
CMV_STD_MESSAGE_HEADER_T header;
|
||||
CMV_STD_MESSAGE_PAYLOAD_T modemRdyParams;
|
||||
-} CMV_MESSAGE_MODEM_RDY_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_MODEM_RDY_T;
|
||||
|
||||
|
||||
/* ============================================================================
|
||||
@@ -358,7 +358,7 @@ typedef struct cmv_message_modem_rdy_s
|
||||
typedef struct cmv_message_cs_static_params_s
|
||||
{
|
||||
unsigned short pageIdx[MEI_CMV_CODESWAP_MAX_PAGES];
|
||||
-} CMV_MESSAGE_CS_STATIC_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_CS_STATIC_PARAMS_T;
|
||||
|
||||
|
||||
typedef struct cmv_dyn_codeswap_page_info_s
|
||||
@@ -366,7 +366,7 @@ typedef struct cmv_dyn_codeswap_page_inf
|
||||
unsigned short pageIdx;
|
||||
unsigned short h_destAddr;
|
||||
unsigned short l_destAddr;
|
||||
-} CMV_DYN_CODESWAP_PAGE_INFO_T;
|
||||
+} __attribute__((packed)) CMV_DYN_CODESWAP_PAGE_INFO_T;
|
||||
|
||||
/**
|
||||
CMV codeswap message payload (dynamic).
|
||||
@@ -374,7 +374,7 @@ typedef struct cmv_dyn_codeswap_page_inf
|
||||
typedef struct cmv_message_cs_dyn_params_s
|
||||
{
|
||||
CMV_DYN_CODESWAP_PAGE_INFO_T pageInfo[MEI_CMV_CODESWAP_MAX_PAGES];
|
||||
-} CMV_MESSAGE_CS_DYN_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_CS_DYN_PARAMS_T;
|
||||
|
||||
|
||||
/**
|
||||
@@ -388,7 +388,7 @@ typedef struct cmv_message_cs_s
|
||||
CMV_MESSAGE_CS_STATIC_PARAMS_T csStaticParams;
|
||||
CMV_MESSAGE_CS_DYN_PARAMS_T csDynParams;
|
||||
} params;
|
||||
-} CMV_MESSAGE_CS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_CS_T;
|
||||
|
||||
/* ============================================================================
|
||||
CMV Fast Read request message definitions
|
||||
@@ -406,7 +406,7 @@ typedef struct cmv_fast_read_params_s
|
||||
unsigned short addrMSW;
|
||||
unsigned short addrLSW;
|
||||
unsigned short size_16bit;
|
||||
-} CMV_FAST_READ_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_FAST_READ_PARAMS_T;
|
||||
|
||||
/**
|
||||
CMV fast read message payload.
|
||||
@@ -414,7 +414,7 @@ typedef struct cmv_fast_read_params_s
|
||||
typedef struct cmv_message_fast_rd_params_s
|
||||
{
|
||||
unsigned short fastRdpage[MEI_CMV_FAST_READ_MAX_PAGES];
|
||||
-} CMV_MESSAGE_FAST_RD_PARAMS_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_FAST_RD_PARAMS_T;
|
||||
|
||||
/**
|
||||
CMV codeswap message.
|
||||
@@ -423,7 +423,7 @@ typedef struct cmv_message_fast_rd_s
|
||||
{
|
||||
CMV_STD_MESSAGE_HEADER_T header;
|
||||
CMV_MESSAGE_FAST_RD_PARAMS_T fastRdParams;
|
||||
-} CMV_MESSAGE_FAST_RD_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_FAST_RD_T;
|
||||
|
||||
/**
|
||||
CMV messages
|
||||
@@ -435,7 +435,7 @@ typedef union cmv_message_all_s
|
||||
CMV_MESSAGE_CS_T codeSwap;
|
||||
CMV_MESSAGE_FAST_RD_T fastRd;
|
||||
unsigned short rawMsg[CMV_HEADER_16BIT_SIZE + CMV_USED_PAYLOAD_16BIT_SIZE];
|
||||
-} CMV_MESSAGE_ALL_T;
|
||||
+} __attribute__((packed)) CMV_MESSAGE_ALL_T;
|
||||
|
||||
|
||||
|
||||
--- a/src/drv_mei_cpe_mailbox.h
|
||||
+++ b/src/drv_mei_cpe_mailbox.h
|
||||
@@ -197,7 +197,7 @@ typedef union MEI_cmv_mailbox_s
|
||||
CMV_MESSAGE_CS_T codeSwap;
|
||||
/** CMV Fast Read message */
|
||||
CMV_MESSAGE_FAST_RD_T fastRd;
|
||||
-} MEI_CMV_MAILBOX_T;
|
||||
+} __attribute__((packed)) MEI_CMV_MAILBOX_T;
|
||||
|
||||
|
||||
/**
|
||||
@@ -206,7 +206,7 @@ typedef union MEI_cmv_mailbox_s
|
||||
typedef struct MEI_mei_mailbox_raw_s
|
||||
{
|
||||
IFX_uint16_t rawMsg[CMV_HEADER_16BIT_SIZE + CMV_USED_PAYLOAD_16BIT_SIZE];
|
||||
-} MEI_MEI_MAILBOX_RAW_T;
|
||||
+} __attribute__((packed)) MEI_MEI_MAILBOX_RAW_T;
|
||||
|
||||
|
||||
/**
|
||||
@@ -218,7 +218,7 @@ typedef union MEI_mei_mailbox_s
|
||||
MEI_MEI_MAILBOX_RAW_T mbRaw;
|
||||
/** CMV message type */
|
||||
MEI_CMV_MAILBOX_T mbCmv;
|
||||
-} MEI_MEI_MAILBOX_T;
|
||||
+} __attribute__((packed)) MEI_MEI_MAILBOX_T;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
--- a/src/drv_mei_cpe_msg_process.c
|
||||
+++ b/src/drv_mei_cpe_msg_process.c
|
||||
@@ -2172,7 +2172,7 @@ MEI_STATIC IFX_int32_t MEI_ModemNfcRead(
|
||||
Return IFX/modem message
|
||||
- index and length fields becomes part of the appl. payload
|
||||
*/
|
||||
- pSource = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pSource = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
/* size field contains number of 16 bit payload elements of the message */
|
||||
paylSize_byte = (CMV_MSGHDR_PAYLOAD_SIZE_GET(pMailbox->mbCmv.cmv)) << CMV_MSG_BIT_SIZE_16BIT;
|
||||
@@ -3508,7 +3508,7 @@ IFX_int32_t MEI_IoctlCmdMsgWrite(
|
||||
*/
|
||||
cmvMbSize = CMV_HEADER_8BIT_SIZE +
|
||||
pUserMsg->paylSize_byte - (sizeof(IFX_uint16_t) * 2);
|
||||
- pDestPtr = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pDestPtr = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
if ( cmvMbSize > (int)(sizeof(MEI_CMV_MAILBOX_T)) )
|
||||
{
|
||||
@@ -3622,7 +3622,7 @@ IFX_int32_t MEI_IoctlAckMsgRead(
|
||||
Return IFX/modem message
|
||||
- index and length fields becomes part of the appl. payload
|
||||
*/
|
||||
- pSource = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pSource = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
/* size field contains number of 16 bit payload elements of the message */
|
||||
paylSize_byte = (CMV_MSGHDR_PAYLOAD_SIZE_GET(pMailbox->mbCmv.cmv)) << CMV_MSG_BIT_SIZE_16BIT;
|
||||
--- a/src/drv_mei_cpe_msg_process_ar9.c
|
||||
+++ b/src/drv_mei_cpe_msg_process_ar9.c
|
||||
@@ -1385,7 +1385,7 @@ MEI_STATIC IFX_int32_t MEI_ModemNfcRead(
|
||||
Return IFX/modem message
|
||||
- index and length fields becomes part of the appl. payload
|
||||
*/
|
||||
- pSource = (unsigned char *)&pMailbox->mbCmv.cmv.header.index;
|
||||
+ pSource = (unsigned char *)&pMailbox->mbCmv.cmv + offsetof(CMV_STD_MESSAGE_T, header.index);
|
||||
|
||||
/* size field contains number of 16 bit payload elements of the message */
|
||||
paylSize_byte = (CMV_MSGHDR_PAYLOAD_SIZE_GET(pMailbox->mbCmv.cmv)) << CMV_MSG_BIT_SIZE_16BIT;
|
@ -1,15 +0,0 @@
|
||||
--- a/src/drv_mei_cpe_msg_process.c
|
||||
+++ b/src/drv_mei_cpe_msg_process.c
|
||||
@@ -3524,7 +3524,12 @@ IFX_int32_t MEI_IoctlCmdMsgWrite(
|
||||
{
|
||||
if (bInternCall)
|
||||
{
|
||||
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,19,0))
|
||||
memcpy(pDestPtr, pUserMsg->pPayload, pUserMsg->paylSize_byte);
|
||||
+#else
|
||||
+ unsafe_memcpy(pDestPtr, pUserMsg->pPayload, pUserMsg->paylSize_byte,
|
||||
+ /* field-spanning writing is used here intentionally */);
|
||||
+#endif
|
||||
}
|
||||
else
|
||||
{
|
155
package/kernel/linux/modules/bluetooth.mk
Normal file
155
package/kernel/linux/modules/bluetooth.mk
Normal file
@ -0,0 +1,155 @@
|
||||
#
|
||||
# Copyright (C) 2006-2025 OpenWrt.org
|
||||
#
|
||||
# This is free software, licensed under the GNU General Public License v2.
|
||||
# See /LICENSE for more information.
|
||||
#
|
||||
|
||||
BLUETOOTH_MENU:=Bluetooth Support
|
||||
|
||||
define KernelPackage/bluetooth
|
||||
SUBMENU:=$(BLUETOOTH_MENU)
|
||||
TITLE:=Bluetooth support
|
||||
DEPENDS:=+kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +kmod-crypto-cmac +kmod-regmap-core +kmod-crypto-ecdh
|
||||
KCONFIG:= \
|
||||
CONFIG_BT \
|
||||
CONFIG_BT_BREDR=y \
|
||||
CONFIG_BT_DEBUGFS=n \
|
||||
CONFIG_BT_LE=y \
|
||||
CONFIG_BT_RFCOMM \
|
||||
CONFIG_BT_BNEP \
|
||||
CONFIG_BT_HIDP
|
||||
$(call AddDepends/rfkill)
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/net/bluetooth/bluetooth.ko \
|
||||
$(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
|
||||
$(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \
|
||||
$(LINUX_DIR)/net/bluetooth/hidp/hidp.ko
|
||||
AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp)
|
||||
endef
|
||||
|
||||
define KernelPackage/bluetooth/description
|
||||
Kernel support for Bluetooth devices
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,bluetooth))
|
||||
|
||||
|
||||
define KernelPackage/hci-uart
|
||||
SUBMENU:=$(BLUETOOTH_MENU)
|
||||
TITLE:=Bluetooth HCI UART support
|
||||
DEPENDS:=+kmod-bluetooth
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_HCIUART \
|
||||
CONFIG_BT_HCIUART_BCM=y \
|
||||
CONFIG_BT_HCIUART_INTEL=n \
|
||||
CONFIG_BT_HCIUART_H4 \
|
||||
CONFIG_BT_HCIUART_NOKIA=n
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/hci_uart.ko
|
||||
AUTOLOAD:=$(call AutoProbe,hci_uart)
|
||||
endef
|
||||
|
||||
define KernelPackage/hci-uart/description
|
||||
Kernel support for Bluetooth HCI UART devices
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,hci-uart))
|
||||
|
||||
|
||||
define KernelPackage/btusb
|
||||
SUBMENU:=$(BLUETOOTH_MENU)
|
||||
TITLE:=Bluetooth HCI USB support
|
||||
DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-bluetooth
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_HCIBTUSB \
|
||||
CONFIG_BT_HCIBTUSB_BCM=y \
|
||||
CONFIG_BT_HCIBTUSB_MTK=y \
|
||||
CONFIG_BT_HCIBTUSB_RTL=y
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btusb.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btbcm.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btintel.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btrtl.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btmtk.ko
|
||||
AUTOLOAD:=$(call AutoProbe,btusb)
|
||||
endef
|
||||
|
||||
define KernelPackage/btusb/description
|
||||
Kernel support for USB Bluetooth HCI USB devices
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,btusb))
|
||||
|
||||
|
||||
define KernelPackage/ath3k
|
||||
SUBMENU:=$(BLUETOOTH_MENU)
|
||||
TITLE:=ATH3K Kernel Module support
|
||||
DEPENDS:=+kmod-hci-uart +kmod-btusb +ar3k-firmware
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_ATH3K \
|
||||
CONFIG_BT_HCIUART_ATH3K=y
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/ath3k.ko
|
||||
AUTOLOAD:=$(call AutoProbe,ath3k)
|
||||
endef
|
||||
|
||||
define KernelPackage/ath3k/description
|
||||
Kernel support for ATH3K Module
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,ath3k))
|
||||
|
||||
|
||||
define KernelPackage/bluetooth-6lowpan
|
||||
SUBMENU:=$(BLUETOOTH_MENU)
|
||||
TITLE:=Bluetooth 6LoWPAN support
|
||||
DEPENDS:=+kmod-6lowpan +kmod-bluetooth
|
||||
KCONFIG:=CONFIG_BT_6LOWPAN
|
||||
FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko
|
||||
AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
|
||||
endef
|
||||
|
||||
define KernelPackage/bluetooth-6lowpan/description
|
||||
Kernel support for 6LoWPAN over Bluetooth Low Energy devices
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,bluetooth-6lowpan))
|
||||
|
||||
|
||||
define KernelPackage/btmrvl
|
||||
SUBMENU:=$(BLUETOOTH_MENU)
|
||||
TITLE:=Marvell Bluetooth Kernel Module support
|
||||
DEPENDS:=+kmod-mmc +kmod-bluetooth +mwifiex-sdio-firmware
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_MRVL \
|
||||
CONFIG_BT_MRVL_SDIO
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btmrvl.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btmrvl_sdio.ko
|
||||
AUTOLOAD:=$(call AutoProbe,btmrvl btmrvl_sdio)
|
||||
endef
|
||||
|
||||
define KernelPackage/btmrvl/description
|
||||
Kernel support for Marvell SDIO Bluetooth Module
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,btmrvl))
|
||||
|
||||
|
||||
define KernelPackage/btsdio
|
||||
SUBMENU:=$(BLUETOOTH_MENU)
|
||||
TITLE:=Bluetooth HCI SDIO driver
|
||||
DEPENDS:=+kmod-bluetooth +kmod-mmc
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_HCIBTSDIO
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btsdio.ko
|
||||
AUTOLOAD:=$(call AutoProbe,btsdio)
|
||||
endef
|
||||
|
||||
define KernelPackage/btsdio/description
|
||||
Kernel support for Bluetooth device with SDIO interface
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,btsdio))
|
@ -27,121 +27,6 @@ endef
|
||||
$(eval $(call KernelPackage,6lowpan))
|
||||
|
||||
|
||||
define KernelPackage/bluetooth
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=Bluetooth support
|
||||
DEPENDS:=@USB_SUPPORT +kmod-usb-core +kmod-crypto-hash +kmod-crypto-ecb +kmod-lib-crc16 +kmod-hid +kmod-crypto-cmac +kmod-regmap-core +kmod-crypto-ecdh
|
||||
KCONFIG:= \
|
||||
CONFIG_BT \
|
||||
CONFIG_BT_BREDR=y \
|
||||
CONFIG_BT_DEBUGFS=n \
|
||||
CONFIG_BT_LE=y \
|
||||
CONFIG_BT_RFCOMM \
|
||||
CONFIG_BT_BNEP \
|
||||
CONFIG_BT_HCIBTUSB \
|
||||
CONFIG_BT_HCIBTUSB_BCM=y \
|
||||
CONFIG_BT_HCIBTUSB_MTK=y \
|
||||
CONFIG_BT_HCIBTUSB_RTL=y \
|
||||
CONFIG_BT_HCIUART \
|
||||
CONFIG_BT_HCIUART_BCM=y \
|
||||
CONFIG_BT_HCIUART_INTEL=n \
|
||||
CONFIG_BT_HCIUART_H4 \
|
||||
CONFIG_BT_HCIUART_NOKIA=n \
|
||||
CONFIG_BT_HIDP
|
||||
$(call AddDepends/rfkill)
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/net/bluetooth/bluetooth.ko \
|
||||
$(LINUX_DIR)/net/bluetooth/rfcomm/rfcomm.ko \
|
||||
$(LINUX_DIR)/net/bluetooth/bnep/bnep.ko \
|
||||
$(LINUX_DIR)/net/bluetooth/hidp/hidp.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/hci_uart.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btusb.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btbcm.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btintel.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btrtl.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btmtk.ko
|
||||
AUTOLOAD:=$(call AutoProbe,bluetooth rfcomm bnep hidp hci_uart btusb)
|
||||
endef
|
||||
|
||||
define KernelPackage/bluetooth/description
|
||||
Kernel support for Bluetooth devices
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,bluetooth))
|
||||
|
||||
define KernelPackage/ath3k
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=ATH3K Kernel Module support
|
||||
DEPENDS:=+kmod-bluetooth +ar3k-firmware
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_ATH3K \
|
||||
CONFIG_BT_HCIUART_ATH3K=y
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/ath3k.ko
|
||||
AUTOLOAD:=$(call AutoProbe,ath3k)
|
||||
endef
|
||||
|
||||
define KernelPackage/ath3k/description
|
||||
Kernel support for ATH3K Module
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,ath3k))
|
||||
|
||||
|
||||
define KernelPackage/bluetooth-6lowpan
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=Bluetooth 6LoWPAN support
|
||||
DEPENDS:=+kmod-6lowpan +kmod-bluetooth
|
||||
KCONFIG:=CONFIG_BT_6LOWPAN
|
||||
FILES:=$(LINUX_DIR)/net/bluetooth/bluetooth_6lowpan.ko
|
||||
AUTOLOAD:=$(call AutoProbe,bluetooth_6lowpan)
|
||||
endef
|
||||
|
||||
define KernelPackage/bluetooth-6lowpan/description
|
||||
Kernel support for 6LoWPAN over Bluetooth Low Energy devices
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,bluetooth-6lowpan))
|
||||
|
||||
|
||||
define KernelPackage/btmrvl
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=Marvell Bluetooth Kernel Module support
|
||||
DEPENDS:=+kmod-mmc +kmod-bluetooth +mwifiex-sdio-firmware
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_MRVL \
|
||||
CONFIG_BT_MRVL_SDIO
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btmrvl.ko \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btmrvl_sdio.ko
|
||||
AUTOLOAD:=$(call AutoProbe,btmrvl btmrvl_sdio)
|
||||
endef
|
||||
|
||||
define KernelPackage/btmrvl/description
|
||||
Kernel support for Marvell SDIO Bluetooth Module
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,btmrvl))
|
||||
|
||||
|
||||
define KernelPackage/btsdio
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=Bluetooth HCI SDIO driver
|
||||
DEPENDS:=+kmod-bluetooth +kmod-mmc
|
||||
KCONFIG:= \
|
||||
CONFIG_BT_HCIBTSDIO
|
||||
FILES:= \
|
||||
$(LINUX_DIR)/drivers/bluetooth/btsdio.ko
|
||||
AUTOLOAD:=$(call AutoProbe,btsdio)
|
||||
endef
|
||||
|
||||
define KernelPackage/btsdio/description
|
||||
Kernel support for Bluetooth device with SDIO interface
|
||||
endef
|
||||
|
||||
$(eval $(call KernelPackage,btsdio))
|
||||
|
||||
|
||||
define KernelPackage/dma-buf
|
||||
SUBMENU:=$(OTHER_MENU)
|
||||
TITLE:=DMA shared buffer support
|
||||
|
@ -11,13 +11,14 @@ PKG_NAME:=zlib
|
||||
PKG_VERSION:=1.3.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=https://github.com/madler/zlib/releases/download/v$(PKG_VERSION)
|
||||
PKG_HASH:=38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/madler/zlib
|
||||
PKG_SOURCE_VERSION:=51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
|
||||
PKG_MIRROR_HASH:=6558577038f4839057fad93afb295bf32e84dc9bd2c33512d40a5eab6d4889ef
|
||||
|
||||
PKG_LICENSE:=Zlib
|
||||
PKG_LICENSE_FILES:=README
|
||||
PKG_CPE_ID:=cpe:/a:gnu:zlib
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_CPE_ID:=cpe:/a:zlib:zlib
|
||||
|
||||
PKG_CONFIG_DEPENDS:= CONFIG_ZLIB_OPTIMIZE_SPEED
|
||||
|
||||
|
@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
PKG_NAME:=ltq-vdsl-vr11-app
|
||||
PKG_VERSION:=4.23.1
|
||||
PKG_RELEASE:=5
|
||||
PKG_RELEASE:=6
|
||||
PKG_BASE_NAME:=dsl_cpe_control
|
||||
|
||||
UGW_VERSION=8.5.2.10
|
||||
|
@ -45,7 +45,7 @@ is stopped on exit.
|
||||
{
|
||||
+ memset(&sPowerManagementStateForcedTrigger, 0x0,
|
||||
+ sizeof(DSL_G997_PowerManagementStateForcedTrigger_t));
|
||||
+ sPowerManagementStateForcedTrigger.data.nPowerManagementState = DSL_G997_PMSF_LX_TO_L3;
|
||||
+ sPowerManagementStateForcedTrigger.data.nPowerManagementState = DSL_G997_PMSF_LX_TO_L3_NO_RETRY;
|
||||
+
|
||||
+ nRet = (DSL_Error_t)DSL_CPE_Ioctl(
|
||||
+ DSL_CPE_GetGlobalContext()->fd[nDevice],
|
||||
|
@ -57,6 +57,11 @@ else
|
||||
CONFIGURE_ARGS += --disable-netlink --disable-pretty-dump
|
||||
endif
|
||||
|
||||
# enable support for input_xfrm with kernels newer than 6.6
|
||||
ifeq ($(CONFIG_LINUX_6_6),)
|
||||
CONFIGURE_ARGS += --enable-rss-input-xfrm
|
||||
endif
|
||||
|
||||
define Package/ethtool/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ethtool $(1)/usr/sbin
|
||||
|
@ -0,0 +1,67 @@
|
||||
From c88eb6f4e9b2d8f71f3391db2bf0ec82ecccae81 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Golle <daniel@makrotopia.org>
|
||||
Date: Wed, 12 Feb 2025 04:12:42 +0000
|
||||
Subject: [PATCH] ethtool: make building for RSS input xfrm optional
|
||||
|
||||
Unfortunately there is no way to detect at runtime if the kernel the
|
||||
support for RSS input transformation, and the default value
|
||||
RXH_XFRM_NO_CHANGE (0xff) used by newer ethtool results in breakage
|
||||
with older kernels.
|
||||
As a stop-gap solution simply don't compile with support for input
|
||||
xfrm by default.
|
||||
|
||||
Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
||||
---
|
||||
configure.ac | 10 ++++++++++
|
||||
ethtool.c | 10 ++++++++++
|
||||
2 files changed, 20 insertions(+)
|
||||
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -45,6 +45,16 @@ if test x$enable_pretty_dump = xyes; the
|
||||
fi
|
||||
AM_CONDITIONAL([ETHTOOL_ENABLE_PRETTY_DUMP], [test x$enable_pretty_dump = xyes])
|
||||
|
||||
+AC_ARG_ENABLE(rss-input-xfrm,
|
||||
+ [ --enable-rss-input-xfrm build with support for RSS input transformation (disabled by default)],
|
||||
+ ,
|
||||
+ enable_rss_input_xfrm=no)
|
||||
+if test x$enable_rss_input_xfrm = xyes; then
|
||||
+ AC_DEFINE(ETHTOOL_ENABLE_RSS_INPUT_XFRM, 1,
|
||||
+ [Define this to enable building with support for RSS input transformation.])
|
||||
+fi
|
||||
+AM_CONDITIONAL([ETHTOOL_ENABLE_RSS_INPUT_XFRM], [test x$enable_rss_input_xfrm = xyes])
|
||||
+
|
||||
AC_ARG_WITH([bash-completion-dir],
|
||||
AS_HELP_STRING([--with-bash-completion-dir[=PATH]],
|
||||
[Install the bash-completion script in this directory. @<:@default=yes@:>@]),
|
||||
--- a/ethtool.c
|
||||
+++ b/ethtool.c
|
||||
@@ -4109,9 +4109,11 @@ static int do_grxfh(struct cmd_context *
|
||||
(const char *)hfuncs->data + i * ETH_GSTRING_LEN,
|
||||
(rss->hfunc & (1 << i)) ? "on" : "off");
|
||||
|
||||
+#ifdef ETHTOOL_ENABLE_RSS_INPUT_XFRM
|
||||
printf("RSS input transformation:\n");
|
||||
printf(" symmetric-xor: %s\n",
|
||||
(rss->input_xfrm & RXH_XFRM_SYM_XOR) ? "on" : "off");
|
||||
+#endif
|
||||
|
||||
out:
|
||||
free(hfuncs);
|
||||
@@ -4431,7 +4433,15 @@ static int do_srxfh(struct cmd_context *
|
||||
rss->cmd = ETHTOOL_SRSSH;
|
||||
rss->rss_context = rss_context;
|
||||
rss->hfunc = req_hfunc;
|
||||
+#ifdef ETHTOOL_ENABLE_RSS_INPUT_XFRM
|
||||
rss->input_xfrm = req_input_xfrm;
|
||||
+#else
|
||||
+ if (req_input_xfrm != 0xff) {
|
||||
+ perror("Compiled for kernel without support for input transformation");
|
||||
+ err = 1;
|
||||
+ goto free;
|
||||
+ }
|
||||
+#endif
|
||||
if (delete) {
|
||||
rss->indir_size = rss->key_size = 0;
|
||||
} else {
|
@ -8,12 +8,12 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=iproute2
|
||||
PKG_VERSION:=6.12.0
|
||||
PKG_RELEASE:=2
|
||||
PKG_VERSION:=6.13.0
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||
PKG_HASH:=bbd141ef7b5d0127cc2152843ba61f274dc32814fa3e0f13e7d07a080bef53d9
|
||||
PKG_HASH:=a43aa43338d882b44d01e549f3f105a92ae9feea32a82fae45a88e7a49302819
|
||||
PKG_BUILD_PARALLEL:=1
|
||||
PKG_BUILD_DEPENDS:=iptables
|
||||
PKG_LICENSE:=GPL-2.0
|
||||
|
@ -1,22 +0,0 @@
|
||||
From c8b3ecc22ed0edaf0259eaf7d1a5c04f300ad6e4 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 11:24:18 -0800
|
||||
Subject: [PATCH] libnetlink: add missing endian.h
|
||||
|
||||
Need endian.h to get htobe64 with musl.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
include/libnetlink.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
--- a/include/libnetlink.h
|
||||
+++ b/include/libnetlink.h
|
||||
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
+#include <endian.h>
|
||||
#include <asm/types.h>
|
||||
#include <linux/netlink.h>
|
||||
#include <linux/rtnetlink.h>
|
@ -1,29 +0,0 @@
|
||||
From fa3949b792e275f75d7d6200dc2036ef7fff8816 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 11:21:56 -0800
|
||||
Subject: [PATCH] rdma: add missing header for basename
|
||||
|
||||
The function basename prototype is in libgen.h
|
||||
Fixes build on musl
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
rdma/rdma.h | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/rdma/rdma.h
|
||||
+++ b/rdma/rdma.h
|
||||
@@ -10,11 +10,12 @@
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <getopt.h>
|
||||
+#include <time.h>
|
||||
+#include <libgen.h>
|
||||
#include <netinet/in.h>
|
||||
#include <libmnl/libmnl.h>
|
||||
#include <rdma/rdma_netlink.h>
|
||||
#include <rdma/rdma_user_cm.h>
|
||||
-#include <time.h>
|
||||
#include <net/if_arp.h>
|
||||
|
||||
#include "list.h"
|
@ -1,84 +0,0 @@
|
||||
From 7e23da91fca6e5dedeb32a7d308cf20982e897c3 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Tue, 10 Dec 2024 13:38:08 -0800
|
||||
Subject: [PATCH] ip: rearrange and prune header files
|
||||
|
||||
The recent report of issues with missing limits.h impacting musl
|
||||
suggested looking at what files are and are not included in ip code.
|
||||
|
||||
The standard practice is to put standard headers first, then system,
|
||||
then local headers. Used iwyu to get suggestions about missing
|
||||
and extraneous headers.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
ip/iplink.c | 13 +++++--------
|
||||
ip/ipnetns.c | 19 +++++++++----------
|
||||
2 files changed, 14 insertions(+), 18 deletions(-)
|
||||
|
||||
--- a/ip/iplink.c
|
||||
+++ b/ip/iplink.c
|
||||
@@ -11,17 +11,14 @@
|
||||
#include <fcntl.h>
|
||||
#include <dlfcn.h>
|
||||
#include <errno.h>
|
||||
+#include <string.h>
|
||||
+#include <strings.h>
|
||||
+#include <limits.h>
|
||||
+
|
||||
#include <sys/socket.h>
|
||||
+#include <arpa/inet.h>
|
||||
#include <linux/if.h>
|
||||
-#include <linux/if_packet.h>
|
||||
#include <linux/if_ether.h>
|
||||
-#include <linux/sockios.h>
|
||||
-#include <netinet/in.h>
|
||||
-#include <arpa/inet.h>
|
||||
-#include <string.h>
|
||||
-#include <sys/ioctl.h>
|
||||
-#include <stdbool.h>
|
||||
-#include <linux/mpls.h>
|
||||
|
||||
#include "rt_names.h"
|
||||
#include "utils.h"
|
||||
--- a/ip/ipnetns.c
|
||||
+++ b/ip/ipnetns.c
|
||||
@@ -1,21 +1,21 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#define _ATFILE_SOURCE
|
||||
-#include <sys/file.h>
|
||||
-#include <sys/types.h>
|
||||
-#include <sys/stat.h>
|
||||
-#include <sys/wait.h>
|
||||
-#include <sys/inotify.h>
|
||||
-#include <sys/mount.h>
|
||||
-#include <sys/syscall.h>
|
||||
+
|
||||
#include <stdio.h>
|
||||
+#include <stdint.h>
|
||||
#include <string.h>
|
||||
-#include <sched.h>
|
||||
#include <fcntl.h>
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <unistd.h>
|
||||
#include <ctype.h>
|
||||
-#include <linux/limits.h>
|
||||
+#include <limits.h>
|
||||
+
|
||||
+#include <sys/file.h>
|
||||
+#include <sys/types.h>
|
||||
+#include <sys/stat.h>
|
||||
+#include <sys/inotify.h>
|
||||
+#include <sys/mount.h>
|
||||
|
||||
#include <linux/net_namespace.h>
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "list.h"
|
||||
#include "ip_common.h"
|
||||
#include "namespace.h"
|
||||
-#include "json_print.h"
|
||||
|
||||
static int usage(void)
|
||||
{
|
@ -1,26 +0,0 @@
|
||||
From f982f30e166a02e09097de05129449031ba51f76 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 11:29:44 -0800
|
||||
Subject: [PATCH] cg_map: use limits.h
|
||||
|
||||
Prefer limits.h from system headers over linux/limits.h
|
||||
Fixes build with musl.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
lib/cg_map.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/lib/cg_map.c
|
||||
+++ b/lib/cg_map.c
|
||||
@@ -9,8 +9,9 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
#include <stdbool.h>
|
||||
+#include <limits.h>
|
||||
+
|
||||
#include <linux/types.h>
|
||||
-#include <linux/limits.h>
|
||||
#include <ftw.h>
|
||||
|
||||
#include "cg_map.h"
|
@ -1,178 +0,0 @@
|
||||
From ac547ad027e3d4e283202ecb487cf54707234491 Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 14:15:59 -0800
|
||||
Subject: [PATCH] flower: replace XATTR_SIZE_MAX
|
||||
|
||||
The flower tc parser was using XATTR_SIZE_MAX from linux/limits.h,
|
||||
but this constant is intended to before extended filesystem attributes
|
||||
not for TC. Replace it with a local define.
|
||||
|
||||
This fixes issue on systems with musl and XATTR_SIZE_MAX is not
|
||||
defined in limits.h there.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
tc/f_flower.c | 37 ++++++++++++++++++++-----------------
|
||||
1 file changed, 20 insertions(+), 17 deletions(-)
|
||||
|
||||
--- a/tc/f_flower.c
|
||||
+++ b/tc/f_flower.c
|
||||
@@ -10,7 +10,7 @@
|
||||
#include <unistd.h>
|
||||
#include <string.h>
|
||||
#include <net/if.h>
|
||||
-#include <linux/limits.h>
|
||||
+
|
||||
#include <linux/if_arp.h>
|
||||
#include <linux/if_ether.h>
|
||||
#include <linux/ip.h>
|
||||
@@ -22,6 +22,9 @@
|
||||
#include "tc_util.h"
|
||||
#include "rt_names.h"
|
||||
|
||||
+/* maximum length of options string */
|
||||
+#define FLOWER_OPTS_MAX 4096
|
||||
+
|
||||
#ifndef IPPROTO_L2TP
|
||||
#define IPPROTO_L2TP 115
|
||||
#endif
|
||||
@@ -1252,7 +1255,7 @@ static int flower_check_enc_opt_key(char
|
||||
|
||||
static int flower_parse_enc_opts_geneve(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
int data_len, key_len, mask_len, err;
|
||||
char *token, *slash;
|
||||
struct rtattr *nest;
|
||||
@@ -1265,7 +1268,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
if (slash)
|
||||
*slash = '\0';
|
||||
|
||||
- if ((key_len + strlen(token) > XATTR_SIZE_MAX) ||
|
||||
+ if ((key_len + strlen(token) > FLOWER_OPTS_MAX) ||
|
||||
flower_check_enc_opt_key(token))
|
||||
return -1;
|
||||
|
||||
@@ -1275,7 +1278,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
|
||||
if (!slash) {
|
||||
/* Pad out mask when not provided */
|
||||
- if (mask_len + strlen(token) > XATTR_SIZE_MAX)
|
||||
+ if (mask_len + strlen(token) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
|
||||
data_len = strlen(rindex(token, ':'));
|
||||
@@ -1288,7 +1291,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
continue;
|
||||
}
|
||||
|
||||
- if (mask_len + strlen(slash + 1) > XATTR_SIZE_MAX)
|
||||
+ if (mask_len + strlen(slash + 1) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
|
||||
strcpy(&mask[mask_len], slash + 1);
|
||||
@@ -1318,7 +1321,7 @@ static int flower_parse_enc_opts_geneve(
|
||||
|
||||
static int flower_parse_enc_opts_vxlan(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1326,14 +1329,14 @@ static int flower_parse_enc_opts_vxlan(c
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else {
|
||||
strcpy(mask, "0xffffffff");
|
||||
}
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
||||
@@ -1355,7 +1358,7 @@ static int flower_parse_enc_opts_vxlan(c
|
||||
|
||||
static int flower_parse_enc_opts_erspan(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1364,7 +1367,7 @@ static int flower_parse_enc_opts_erspan(
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else {
|
||||
@@ -1376,7 +1379,7 @@ static int flower_parse_enc_opts_erspan(
|
||||
strcpy(mask + index, ":0xffffffff:0xff:0xff");
|
||||
}
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
||||
@@ -1398,7 +1401,7 @@ static int flower_parse_enc_opts_erspan(
|
||||
|
||||
static int flower_parse_enc_opts_gtp(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1406,13 +1409,13 @@ static int flower_parse_enc_opts_gtp(cha
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else
|
||||
strcpy(mask, "ff:ff");
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
||||
@@ -1433,7 +1436,7 @@ static int flower_parse_enc_opts_gtp(cha
|
||||
|
||||
static int flower_parse_enc_opts_pfcp(char *str, struct nlmsghdr *n)
|
||||
{
|
||||
- char key[XATTR_SIZE_MAX], mask[XATTR_SIZE_MAX];
|
||||
+ char key[FLOWER_OPTS_MAX], mask[FLOWER_OPTS_MAX];
|
||||
struct rtattr *nest;
|
||||
char *slash;
|
||||
int err;
|
||||
@@ -1442,14 +1445,14 @@ static int flower_parse_enc_opts_pfcp(ch
|
||||
slash = strchr(str, '/');
|
||||
if (slash) {
|
||||
*slash++ = '\0';
|
||||
- if (strlen(slash) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(slash) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(mask, slash);
|
||||
} else {
|
||||
strcpy(mask, "ff:ffffffffffffffff");
|
||||
}
|
||||
|
||||
- if (strlen(str) > XATTR_SIZE_MAX)
|
||||
+ if (strlen(str) > FLOWER_OPTS_MAX)
|
||||
return -1;
|
||||
strcpy(key, str);
|
||||
|
@ -1,37 +0,0 @@
|
||||
From 458dce5d0431f0589aca1bc841904b5d1db3bbce Mon Sep 17 00:00:00 2001
|
||||
From: Stephen Hemminger <stephen@networkplumber.org>
|
||||
Date: Thu, 12 Dec 2024 14:18:35 -0800
|
||||
Subject: [PATCH] uapi: remove no longer used linux/limits.h
|
||||
|
||||
Code is now using limits.h instead.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
|
||||
---
|
||||
include/uapi/linux/limits.h | 21 ---------------------
|
||||
1 file changed, 21 deletions(-)
|
||||
delete mode 100644 include/uapi/linux/limits.h
|
||||
|
||||
--- a/include/uapi/linux/limits.h
|
||||
+++ /dev/null
|
||||
@@ -1,21 +0,0 @@
|
||||
-/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
|
||||
-#ifndef _LINUX_LIMITS_H
|
||||
-#define _LINUX_LIMITS_H
|
||||
-
|
||||
-#define NR_OPEN 1024
|
||||
-
|
||||
-#define NGROUPS_MAX 65536 /* supplemental group IDs are available */
|
||||
-#define ARG_MAX 131072 /* # bytes of args + environ for exec() */
|
||||
-#define LINK_MAX 127 /* # links a file may have */
|
||||
-#define MAX_CANON 255 /* size of the canonical input queue */
|
||||
-#define MAX_INPUT 255 /* size of the type-ahead buffer */
|
||||
-#define NAME_MAX 255 /* # chars in a file name */
|
||||
-#define PATH_MAX 4096 /* # chars in a path name including nul */
|
||||
-#define PIPE_BUF 4096 /* # bytes in atomic write to a pipe */
|
||||
-#define XATTR_NAME_MAX 255 /* # chars in an extended attribute name */
|
||||
-#define XATTR_SIZE_MAX 65536 /* size of an extended attribute value (64k) */
|
||||
-#define XATTR_LIST_MAX 65536 /* size of extended attribute namelist (64k) */
|
||||
-
|
||||
-#define RTSIG_MAX 32
|
||||
-
|
||||
-#endif
|
@ -25,7 +25,7 @@
|
||||
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
|
||||
--- a/ip/ip.c
|
||||
+++ b/ip/ip.c
|
||||
@@ -61,11 +61,17 @@ static void usage(void)
|
||||
@@ -59,11 +59,17 @@ static void usage(void)
|
||||
fprintf(stderr,
|
||||
"Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }\n"
|
||||
" ip [ -force ] -batch filename\n"
|
||||
@ -43,7 +43,7 @@
|
||||
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
|
||||
" -h[uman-readable] | -iec | -j[son] | -p[retty] |\n"
|
||||
" -f[amily] { inet | inet6 | mpls | bridge | link } |\n"
|
||||
@@ -88,37 +94,49 @@ static const struct cmd {
|
||||
@@ -86,37 +92,49 @@ static const struct cmd {
|
||||
int (*func)(int argc, char **argv);
|
||||
} cmds[] = {
|
||||
{ "address", do_ipaddr },
|
||||
|
@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
|
||||
PKG_NAME:=selinux-policy
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://git.defensec.nl/selinux-policy.git
|
||||
PKG_VERSION:=1.2.5
|
||||
PKG_MIRROR_HASH:=0b485aefed7ecc1ba3c5f5843cb3b10e9d7c55c09b361cd56933081c0dbdc223
|
||||
PKG_VERSION:=2.1
|
||||
PKG_MIRROR_HASH:=8ab9f734d2a81c8d396afb4f6783c67d31b76c0334bf8e564eb050f98356655b
|
||||
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
|
||||
PKG_BUILD_DEPENDS:=secilc/host policycoreutils/host
|
||||
|
||||
@ -44,10 +44,14 @@ endef
|
||||
define Package/selinux-policy/install
|
||||
$(INSTALL_DIR) $(1)/etc/selinux/$(PKG_NAME)/contexts/files/
|
||||
$(INSTALL_DIR) $(1)/etc/selinux/$(PKG_NAME)/policy/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/customizable_types $(1)/etc/selinux/$(PKG_NAME)/contexts/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/file_contexts.subs_dist $(1)/etc/selinux/$(PKG_NAME)/contexts/files/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/file_contexts $(1)/etc/selinux/$(PKG_NAME)/contexts/files/
|
||||
$(INSTALL_CONF) $(PKG_BUILD_DIR)/policy.* $(1)/etc/selinux/$(PKG_NAME)/policy/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/customizable_types $(1)/etc/selinux/$(PKG_NAME)/contexts/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/default_contexts $(1)/etc/selinux/$(PKG_NAME)/contexts/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/default_type $(1)/etc/selinux/$(PKG_NAME)/contexts/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/failsafe_context $(1)/etc/selinux/$(PKG_NAME)/contexts/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/file_contexts $(1)/etc/selinux/$(PKG_NAME)/contexts/files/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/file_contexts.subs_dist $(1)/etc/selinux/$(PKG_NAME)/contexts/files/
|
||||
$(INSTALL_DATA) $(PKG_BUILD_DIR)/seusers $(1)/etc/selinux/$(PKG_NAME)/
|
||||
$(INSTALL_DATA) ./files/selinux-config $(1)/etc/selinux/config
|
||||
endef
|
||||
|
||||
|
@ -880,7 +880,14 @@ void uline_set_hint(struct uline_state *s, const char *str, size_t len)
|
||||
pos_add_string(s, &s->cursor_pos, str, len);
|
||||
}
|
||||
|
||||
set_cursor(s, prev_pos);
|
||||
if (s->cursor_pos.y >= s->rows) {
|
||||
if (s->cursor_pos.x > 0)
|
||||
vt100_next_line(s->output);
|
||||
s->cursor_pos = (struct pos){};
|
||||
s->full_update = true;
|
||||
} else {
|
||||
set_cursor(s, prev_pos);
|
||||
}
|
||||
fflush(s->output);
|
||||
}
|
||||
|
||||
|
@ -122,7 +122,7 @@
|
||||
};
|
||||
|
||||
/* Uart divisor latch read */
|
||||
@@ -2881,6 +2889,12 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2889,6 +2897,12 @@ serial8250_do_set_termios(struct uart_po
|
||||
|
||||
serial8250_set_divisor(port, baud, quot, frac);
|
||||
|
||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -6063,6 +6063,9 @@ int __init cgroup_init_early(void)
|
||||
@@ -6059,6 +6059,9 @@ int __init cgroup_init_early(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
/**
|
||||
* cgroup_init - cgroup initialization
|
||||
*
|
||||
@@ -6096,6 +6099,12 @@ int __init cgroup_init(void)
|
||||
@@ -6092,6 +6095,12 @@ int __init cgroup_init(void)
|
||||
|
||||
cgroup_unlock();
|
||||
|
||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
for_each_subsys(ss, ssid) {
|
||||
if (ss->early_init) {
|
||||
struct cgroup_subsys_state *css =
|
||||
@@ -6736,6 +6745,10 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6740,6 +6749,10 @@ static int __init cgroup_disable(char *s
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||
pr_info("Disabling %s control group subsystem\n",
|
||||
ss->name);
|
||||
@@ -6754,6 +6767,31 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6758,6 +6771,31 @@ static int __init cgroup_disable(char *s
|
||||
}
|
||||
__setup("cgroup_disable=", cgroup_disable);
|
||||
|
||||
|
@ -1189,7 +1189,7 @@ Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
|
||||
}
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5712,7 +5712,7 @@ static void port_event(struct usb_hub *h
|
||||
@@ -5722,7 +5722,7 @@ static void port_event(struct usb_hub *h
|
||||
port_dev->over_current_count++;
|
||||
port_over_current_notify(port_dev);
|
||||
|
||||
|
@ -148,7 +148,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -6063,9 +6063,6 @@ int __init cgroup_init_early(void)
|
||||
@@ -6059,9 +6059,6 @@ int __init cgroup_init_early(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -158,7 +158,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
/**
|
||||
* cgroup_init - cgroup initialization
|
||||
*
|
||||
@@ -6099,12 +6096,6 @@ int __init cgroup_init(void)
|
||||
@@ -6095,12 +6092,6 @@ int __init cgroup_init(void)
|
||||
|
||||
cgroup_unlock();
|
||||
|
||||
@ -171,7 +171,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
for_each_subsys(ss, ssid) {
|
||||
if (ss->early_init) {
|
||||
struct cgroup_subsys_state *css =
|
||||
@@ -6745,10 +6736,6 @@ static int __init cgroup_disable(char *s
|
||||
@@ -6749,10 +6740,6 @@ static int __init cgroup_disable(char *s
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
@ -182,7 +182,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||
pr_info("Disabling %s control group subsystem\n",
|
||||
ss->name);
|
||||
@@ -6782,7 +6769,7 @@ static int __init cgroup_enable(char *st
|
||||
@@ -6786,7 +6773,7 @@ static int __init cgroup_enable(char *st
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
|
@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
||||
|
||||
--- a/kernel/cgroup/cgroup.c
|
||||
+++ b/kernel/cgroup/cgroup.c
|
||||
@@ -6769,11 +6769,19 @@ static int __init cgroup_enable(char *st
|
||||
@@ -6773,11 +6773,19 @@ static int __init cgroup_enable(char *st
|
||||
strcmp(token, ss->legacy_name))
|
||||
continue;
|
||||
|
||||
|
@ -398,7 +398,7 @@ TARGET_DEVICES += meraki_mr26
|
||||
define Device/meraki_mr32
|
||||
DEVICE_VENDOR := Meraki
|
||||
DEVICE_MODEL := MR32
|
||||
DEVICE_PACKAGES := $(B43) kmod-leds-pwm kmod-hwmon-ina2xx kmod-bluetooth
|
||||
DEVICE_PACKAGES := $(B43) kmod-leds-pwm kmod-hwmon-ina2xx kmod-hci-uart
|
||||
DEVICE_DTS := bcm53016-meraki-mr32
|
||||
# Meraki FW r23 tries to resize the part.safe partition before it will
|
||||
# flash the image. This is a bit of a problem, since resizing will fail
|
||||
|
@ -36,7 +36,7 @@ Signed-off-by: Paolo Abeni <pabeni@redhat.com>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -3300,6 +3300,7 @@ static inline void dev_xmit_recursion_de
|
||||
@@ -3306,6 +3306,7 @@ static inline void dev_xmit_recursion_de
|
||||
__this_cpu_dec(softnet_data.xmit.recursion);
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
|
||||
--- a/include/linux/netdevice.h
|
||||
+++ b/include/linux/netdevice.h
|
||||
@@ -4561,6 +4561,9 @@ static inline void netif_addr_unlock_bh(
|
||||
@@ -4567,6 +4567,9 @@ static inline void netif_addr_unlock_bh(
|
||||
|
||||
void ether_setup(struct net_device *dev);
|
||||
|
||||
|
@ -44,7 +44,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
||||
|
||||
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||
/* These Quectel products use Quectel's vendor ID */
|
||||
@@ -1162,6 +1167,11 @@ static const struct usb_device_id option
|
||||
@@ -1153,6 +1158,11 @@ static const struct usb_device_id option
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
||||
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
|
||||
@ -56,7 +56,7 @@ Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support
|
||||
/* Quectel products using Qualcomm vendor ID */
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
|
||||
@@ -1203,6 +1213,11 @@ static const struct usb_device_id option
|
||||
@@ -1194,6 +1204,11 @@ static const struct usb_device_id option
|
||||
.driver_info = ZLP },
|
||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||
.driver_info = RSVD(4) },
|
||||
|
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
case RTN_THROW:
|
||||
case RTN_UNREACHABLE:
|
||||
default:
|
||||
@@ -4546,6 +4565,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
@@ -4551,6 +4570,17 @@ static int ip6_pkt_prohibit_out(struct n
|
||||
return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES);
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
/*
|
||||
* Allocate a dst for local (unicast / anycast) address.
|
||||
*/
|
||||
@@ -5037,7 +5067,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
@@ -5042,7 +5072,8 @@ static int rtm_to_fib6_config(struct sk_
|
||||
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||
rtm->rtm_type == RTN_PROHIBIT ||
|
||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
cfg->fc_flags |= RTF_REJECT;
|
||||
|
||||
if (rtm->rtm_type == RTN_LOCAL)
|
||||
@@ -6299,6 +6330,8 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6304,6 +6335,8 @@ static int ip6_route_dev_notify(struct n
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev);
|
||||
@ -194,7 +194,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.dev = dev;
|
||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||
#endif
|
||||
@@ -6310,6 +6343,7 @@ static int ip6_route_dev_notify(struct n
|
||||
@@ -6315,6 +6348,7 @@ static int ip6_route_dev_notify(struct n
|
||||
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
||||
@ -202,7 +202,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||
#endif
|
||||
}
|
||||
@@ -6510,6 +6544,8 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6515,6 +6549,8 @@ static int __net_init ip6_route_net_init
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
net->ipv6.fib6_has_custom_rules = false;
|
||||
@ -211,7 +211,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||
GFP_KERNEL);
|
||||
@@ -6520,11 +6556,21 @@ static int __net_init ip6_route_net_init
|
||||
@@ -6525,11 +6561,21 @@ static int __net_init ip6_route_net_init
|
||||
ip6_template_metrics, true);
|
||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached);
|
||||
|
||||
@ -234,7 +234,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||
ip6_template_metrics, true);
|
||||
@@ -6551,6 +6597,8 @@ out:
|
||||
@@ -6556,6 +6602,8 @@ out:
|
||||
return ret;
|
||||
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
out_ip6_prohibit_entry:
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
out_ip6_null_entry:
|
||||
@@ -6570,6 +6618,7 @@ static void __net_exit ip6_route_net_exi
|
||||
@@ -6575,6 +6623,7 @@ static void __net_exit ip6_route_net_exi
|
||||
kfree(net->ipv6.ip6_null_entry);
|
||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||
kfree(net->ipv6.ip6_prohibit_entry);
|
||||
@ -251,7 +251,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
||||
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||
#endif
|
||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
||||
@@ -6653,6 +6702,9 @@ void __init ip6_route_init_special_entri
|
||||
@@ -6658,6 +6707,9 @@ void __init ip6_route_init_special_entri
|
||||
init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev;
|
||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev);
|
||||
|
@ -0,0 +1,54 @@
|
||||
From: Felix Fietkau <nbd@nbd.name>
|
||||
Date: Mon, 24 Feb 2025 12:18:23 +0100
|
||||
Subject: [PATCH] net: ipv6: fix TCP GSO segmentation with NAT
|
||||
|
||||
When updating the source/destination address, the TCP/UDP checksum needs to
|
||||
be updated as well.
|
||||
|
||||
Fixes: bee88cd5bd83 ("net: add support for segmenting TCP fraglist GSO packets")
|
||||
Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
---
|
||||
|
||||
--- a/net/ipv6/tcpv6_offload.c
|
||||
+++ b/net/ipv6/tcpv6_offload.c
|
||||
@@ -112,24 +112,36 @@ static struct sk_buff *__tcpv6_gso_segme
|
||||
struct sk_buff *seg;
|
||||
struct tcphdr *th2;
|
||||
struct ipv6hdr *iph2;
|
||||
+ bool addr_equal;
|
||||
|
||||
seg = segs;
|
||||
th = tcp_hdr(seg);
|
||||
iph = ipv6_hdr(seg);
|
||||
th2 = tcp_hdr(seg->next);
|
||||
iph2 = ipv6_hdr(seg->next);
|
||||
+ addr_equal = ipv6_addr_equal(&iph->saddr, &iph2->saddr) &&
|
||||
+ ipv6_addr_equal(&iph->daddr, &iph2->daddr);
|
||||
|
||||
if (!(*(const u32 *)&th->source ^ *(const u32 *)&th2->source) &&
|
||||
- ipv6_addr_equal(&iph->saddr, &iph2->saddr) &&
|
||||
- ipv6_addr_equal(&iph->daddr, &iph2->daddr))
|
||||
+ addr_equal)
|
||||
return segs;
|
||||
|
||||
while ((seg = seg->next)) {
|
||||
th2 = tcp_hdr(seg);
|
||||
iph2 = ipv6_hdr(seg);
|
||||
|
||||
- iph2->saddr = iph->saddr;
|
||||
- iph2->daddr = iph->daddr;
|
||||
+ if (!addr_equal) {
|
||||
+ inet_proto_csum_replace16(&th2->check, seg,
|
||||
+ iph2->saddr.s6_addr32,
|
||||
+ iph->saddr.s6_addr32,
|
||||
+ true);
|
||||
+ inet_proto_csum_replace16(&th2->check, seg,
|
||||
+ iph2->daddr.s6_addr32,
|
||||
+ iph->daddr.s6_addr32,
|
||||
+ true);
|
||||
+ iph2->saddr = iph->saddr;
|
||||
+ iph2->daddr = iph->daddr;
|
||||
+ }
|
||||
__tcpv6_gso_segment_csum(seg, &th2->source, th->source);
|
||||
__tcpv6_gso_segment_csum(seg, &th2->dest, th->dest);
|
||||
}
|
@ -48,7 +48,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
||||
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
|
||||
{
|
||||
u16 cmd;
|
||||
@@ -1283,3 +1298,4 @@ static void quirk_usb_early_handoff(stru
|
||||
@@ -1292,3 +1307,4 @@ static void quirk_usb_early_handoff(stru
|
||||
}
|
||||
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
|
||||
PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
|
||||
|
@ -739,7 +739,7 @@ define Device/linksys_whw03
|
||||
IMAGE_SIZE := 131072k
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | linksys-image type=WHW03
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-leds-pca963x kmod-spi-dev kmod-bluetooth \
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-leds-pca963x kmod-spi-dev kmod-hci-uart \
|
||||
kmod-fs-ext4 e2fsprogs kmod-fs-f2fs mkf2fs losetup ipq-wifi-linksys_whw03
|
||||
endef
|
||||
TARGET_DEVICES += linksys_whw03
|
||||
@ -758,7 +758,7 @@ define Device/linksys_whw03v2
|
||||
UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF
|
||||
IMAGES += factory.bin
|
||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=WHW03v2
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-leds-pca963x kmod-spi-dev kmod-bluetooth
|
||||
DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-leds-pca963x kmod-spi-dev kmod-hci-uart
|
||||
endef
|
||||
TARGET_DEVICES += linksys_whw03v2
|
||||
|
||||
@ -1127,7 +1127,7 @@ define Device/teltonika_rutx10
|
||||
PAGESIZE := 2048
|
||||
FILESYSTEMS := squashfs
|
||||
IMAGE/factory.ubi := append-ubi | qsdk-ipq-factory-nand | append-rutx-metadata
|
||||
DEVICE_PACKAGES := kmod-bluetooth
|
||||
DEVICE_PACKAGES := kmod-btusb
|
||||
endef
|
||||
# Missing DSA Setup
|
||||
#TARGET_DEVICES += teltonika_rutx10
|
||||
|
@ -19,7 +19,7 @@
|
||||
},
|
||||
[PORT_NPCM] = {
|
||||
.name = "Nuvoton 16550",
|
||||
@@ -2775,6 +2775,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2783,6 +2783,11 @@ serial8250_do_set_termios(struct uart_po
|
||||
unsigned long flags;
|
||||
unsigned int baud, quot, frac = 0;
|
||||
|
||||
|
@ -208,7 +208,7 @@ define Device/linksys_mx4200v1
|
||||
$(call Device/linksys_mx4x00)
|
||||
DEVICE_MODEL := MX4200
|
||||
DEVICE_VARIANT := v1
|
||||
DEVICE_PACKAGES += kmod-bluetooth
|
||||
DEVICE_PACKAGES += kmod-hci-uart
|
||||
endef
|
||||
TARGET_DEVICES += linksys_mx4200v1
|
||||
|
||||
@ -241,7 +241,7 @@ define Device/linksys_mx8500
|
||||
$(call Device/linksys_mx)
|
||||
DEVICE_MODEL := MX8500
|
||||
DEVICE_PACKAGES += ipq-wifi-linksys_mx8500 kmod-ath11k-pci \
|
||||
ath11k-firmware-qcn9074 kmod-bluetooth
|
||||
ath11k-firmware-qcn9074 kmod-hci-uart
|
||||
endef
|
||||
TARGET_DEVICES += linksys_mx8500
|
||||
|
||||
@ -545,6 +545,6 @@ define Device/zyxel_nbg7815
|
||||
DEVICE_DTS_CONFIG := config@nbg7815
|
||||
SOC := ipq8074
|
||||
DEVICE_PACKAGES := kmod-fs-f2fs f2fs-tools ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci \
|
||||
kmod-bluetooth kmod-hwmon-tmp103
|
||||
kmod-hci-uart kmod-hwmon-tmp103
|
||||
endef
|
||||
TARGET_DEVICES += zyxel_nbg7815
|
||||
|
@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
|
||||
--- a/drivers/media/usb/uvc/uvc_driver.c
|
||||
+++ b/drivers/media/usb/uvc/uvc_driver.c
|
||||
@@ -3269,6 +3269,18 @@ static const struct usb_device_id uvc_id
|
||||
@@ -3287,6 +3287,18 @@ static const struct usb_device_id uvc_id
|
||||
.bInterfaceSubClass = 1,
|
||||
.bInterfaceProtocol = 0,
|
||||
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
|
||||
@ -62,9 +62,9 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
+#include <linux/kobject.h>
|
||||
+#include <linux/workqueue.h>
|
||||
|
||||
#include <media/jpeg.h>
|
||||
#include <media/v4l2-common.h>
|
||||
|
||||
@@ -1296,9 +1301,149 @@ static void uvc_video_decode_data(struct
|
||||
@@ -1321,9 +1326,149 @@ static void uvc_video_decode_data(struct
|
||||
uvc_urb->async_operations++;
|
||||
}
|
||||
|
||||
@ -214,7 +214,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
/* Mark the buffer as done if the EOF marker is set. */
|
||||
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
|
||||
uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
|
||||
@@ -1880,6 +2025,8 @@ static int uvc_init_video_isoc(struct uv
|
||||
@@ -1905,6 +2050,8 @@ static int uvc_init_video_isoc(struct uv
|
||||
if (npackets == 0)
|
||||
return -ENOMEM;
|
||||
|
||||
@ -225,16 +225,16 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
||||
for_each_uvc_urb(uvc_urb, stream) {
|
||||
--- a/drivers/media/usb/uvc/uvcvideo.h
|
||||
+++ b/drivers/media/usb/uvc/uvcvideo.h
|
||||
@@ -76,6 +76,8 @@
|
||||
#define UVC_QUIRK_NO_RESET_RESUME 0x00004000
|
||||
@@ -77,6 +77,8 @@
|
||||
#define UVC_QUIRK_DISABLE_AUTOSUSPEND 0x00008000
|
||||
#define UVC_QUIRK_INVALID_DEVICE_SOF 0x00010000
|
||||
+#define UVC_QUIRK_MOTION 0x00020000
|
||||
+#define UVC_QUIRK_SINGLE_ISO 0x00040000
|
||||
#define UVC_QUIRK_MJPEG_NO_EOF 0x00020000
|
||||
+#define UVC_QUIRK_MOTION 0x00040000
|
||||
+#define UVC_QUIRK_SINGLE_ISO 0x00080000
|
||||
|
||||
/* Format flags */
|
||||
#define UVC_FMT_FLAG_COMPRESSED 0x00000001
|
||||
@@ -586,6 +588,7 @@ struct uvc_device {
|
||||
@@ -587,6 +589,7 @@ struct uvc_device {
|
||||
|
||||
struct input_dev *input;
|
||||
char input_phys[64];
|
||||
|
@ -22,7 +22,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
#define PAD_DS_TUNE 0x188
|
||||
#define PAD_CMD_TUNE 0x18c
|
||||
#define EMMC51_CFG0 0x204
|
||||
@@ -400,6 +404,7 @@ struct mtk_mmc_compatible {
|
||||
@@ -402,6 +406,7 @@ struct mtk_mmc_compatible {
|
||||
bool enhance_rx;
|
||||
bool support_64g;
|
||||
bool use_internal_cd;
|
||||
@ -30,7 +30,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
};
|
||||
|
||||
struct msdc_tune_para {
|
||||
@@ -537,6 +542,7 @@ static const struct mtk_mmc_compatible m
|
||||
@@ -539,6 +544,7 @@ static const struct mtk_mmc_compatible m
|
||||
.stop_clk_fix = false,
|
||||
.enhance_rx = false,
|
||||
.use_internal_cd = true,
|
||||
@ -38,7 +38,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
};
|
||||
|
||||
static const struct mtk_mmc_compatible mt7622_compat = {
|
||||
@@ -1729,9 +1735,11 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1731,9 +1737,11 @@ static void msdc_init_hw(struct msdc_hos
|
||||
}
|
||||
writel(0, host->base + MSDC_IOCON);
|
||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
||||
@ -53,7 +53,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
||||
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
||||
|
||||
if (host->dev_comp->stop_clk_fix) {
|
||||
@@ -1795,6 +1803,18 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1797,6 +1805,18 @@ static void msdc_init_hw(struct msdc_hos
|
||||
MSDC_PAD_TUNE_RXDLYSEL);
|
||||
}
|
||||
|
||||
|
@ -8,6 +8,15 @@
|
||||
|
||||
};
|
||||
|
||||
&gpio1 {
|
||||
poe-enable {
|
||||
gpio-hog;
|
||||
gpios = <10 GPIO_ACTIVE_HIGH>;
|
||||
output-high;
|
||||
line-name = "poe-enable";
|
||||
};
|
||||
};
|
||||
|
||||
&firmware {
|
||||
openwrt,ih-magic = <0x4e474335>;
|
||||
};
|
||||
|
@ -9,6 +9,8 @@ define Device/xikestor_sks8300-8x
|
||||
SOC := rtl9303
|
||||
DEVICE_VENDOR := XikeStor
|
||||
DEVICE_MODEL := SKS8300-8X
|
||||
DEVICE_ALT0_VENDOR := ONTi
|
||||
DEVICE_ALT0_MODEL := ONT-S508CL-8S
|
||||
BLOCKSIZE := 64k
|
||||
KERNEL_SIZE := 8192k
|
||||
IMAGE_SIZE := 30720k
|
||||
|
@ -67,7 +67,7 @@ Signed-off-by: Minda Chen <minda.chen@starfivetech.com>
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -2814,7 +2827,6 @@ serial8250_do_set_termios(struct uart_po
|
||||
@@ -2822,7 +2835,6 @@ serial8250_do_set_termios(struct uart_po
|
||||
if (termios->c_cflag & CRTSCTS)
|
||||
up->mcr |= UART_MCR_AFE;
|
||||
}
|
||||
|
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
||||
ARCH:=arm
|
||||
BOARD:=sunxi
|
||||
BOARDNAME:=Allwinner ARM SoCs
|
||||
FEATURES:=usb ext4 display rootfs-part rtc squashfs
|
||||
FEATURES:=ext4 display rootfs-part rtc squashfs usb usbgadget
|
||||
SUBTARGETS:=cortexa8 cortexa7 cortexa53
|
||||
|
||||
KERNEL_PATCHVER:=6.6
|
||||
|
@ -1,3 +1,34 @@
|
||||
--- a/bin/autoconf.in
|
||||
+++ b/bin/autoconf.in
|
||||
@@ -29,7 +29,10 @@ use warnings FATAL => 'all';
|
||||
|
||||
BEGIN
|
||||
{
|
||||
- my $pkgdatadir = $ENV{'autom4te_perllibdir'} || '@pkgdatadir@';
|
||||
+ my $pkgdatadir = $ENV{'autom4te_perllibdir'} ||
|
||||
+ ($ENV{'STAGING_DIR_HOST'} ?
|
||||
+ $ENV{'STAGING_DIR_HOST'} . '/share/autoconf' :
|
||||
+ '@pkgdatadir@');
|
||||
unshift @INC, $pkgdatadir;
|
||||
|
||||
# Override SHELL. On DJGPP SHELL may not be set to a shell
|
||||
@@ -44,8 +47,14 @@ use Autom4te::Channels qw(msg);
|
||||
use Autom4te::General;
|
||||
|
||||
# Lib files.
|
||||
-my $autom4te = $ENV{'AUTOM4TE'} || '@bindir@/@autom4te-name@';
|
||||
-my $trailer_m4 = $ENV{'trailer_m4'} || '@pkgdatadir@/autoconf/trailer.m4';
|
||||
+my $autom4te = $ENV{'AUTOM4TE'} ||
|
||||
+ ($ENV{'STAGING_DIR_HOST'} ?
|
||||
+ $ENV{'STAGING_DIR_HOST'} . '/bin/@autom4te-name@' :
|
||||
+ '@bindir@/@autom4te-name@');
|
||||
+my $trailer_m4 = $ENV{'trailer_m4'} ||
|
||||
+ ($ENV{'STAGING_DIR_HOST'} ?
|
||||
+ $ENV{'STAGING_DIR_HOST'} . '/share/autoconf/autoconf/trailer.m4' :
|
||||
+ '@pkgdatadir@/autoconf/trailer.m4');
|
||||
|
||||
# $HELP
|
||||
# -----
|
||||
--- a/bin/autoheader.in
|
||||
+++ b/bin/autoheader.in
|
||||
@@ -30,9 +30,12 @@ use 5.006;
|
||||
|
@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=automake
|
||||
PKG_CPE_ID:=cpe:/a:gnu:automake
|
||||
PKG_VERSION:=1.17
|
||||
PKG_VERSION:=1.16.5
|
||||
PKG_API_VERSION:=$(word 2,$(subst ., ,$(PKG_VERSION)))
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=@GNU/automake
|
||||
PKG_HASH:=8920c1fc411e13b90bf704ef9db6f29d540e76d232cb3b2c9f4dc4cc599bd990
|
||||
PKG_HASH:=07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605
|
||||
|
||||
include $(INCLUDE_DIR)/host-build.mk
|
||||
|
||||
@ -21,7 +21,7 @@ HOST_CONFIGURE_ARGS += \
|
||||
--disable-silent-rules
|
||||
|
||||
HOST_CONFIGURE_VARS += \
|
||||
PERL="$(shell command -v perl)" \
|
||||
PERL="/usr/bin/env perl" \
|
||||
am_cv_prog_PERL_ithreads=no
|
||||
|
||||
define Host/Configure
|
||||
|
@ -11,7 +11,7 @@
|
||||
# We need at least this version for CLONE support.
|
||||
--- a/bin/aclocal.in
|
||||
+++ b/bin/aclocal.in
|
||||
@@ -23,10 +23,12 @@ use 5.006;
|
||||
@@ -23,9 +23,11 @@ use 5.006;
|
||||
use strict;
|
||||
use warnings FATAL => 'all';
|
||||
|
||||
@ -20,23 +20,21 @@
|
||||
BEGIN
|
||||
{
|
||||
- unshift (@INC, '@datadir@/@PACKAGE@-@APIVERSION@')
|
||||
- unless $ENV{AUTOMAKE_UNINSTALLED};
|
||||
+ unshift (@INC, ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/@PACKAGE@-@APIVERSION@' : '@datadir@/@PACKAGE@-@APIVERSION@'))
|
||||
+ unless $ENV{AUTOMAKE_UNINSTALLED};
|
||||
unless $ENV{AUTOMAKE_UNINSTALLED};
|
||||
}
|
||||
|
||||
use File::Basename;
|
||||
@@ -65,8 +67,8 @@ $perl_threads = 0;
|
||||
# --aclocal-path option/ACLOCAL_PATH environment variable, and reset
|
||||
# with the '--system-acdir' option.
|
||||
# ACLOCAL_PATH environment variable, and reset with the '--system-acdir'
|
||||
# option.
|
||||
my @user_includes = ();
|
||||
-my @automake_includes = ('@datadir@/aclocal-' . $APIVERSION);
|
||||
-my @system_includes = ('@datadir@/aclocal');
|
||||
+my @automake_includes = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . "/share/aclocal-$APIVERSION" : "@datadir@/aclocal-$APIVERSION");
|
||||
+my @system_includes = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . '/share/aclocal' : '@datadir@/aclocal');
|
||||
my $aclocal_path = '';
|
||||
|
||||
# Whether we should copy M4 file in $user_includes[0].
|
||||
my $install = 0;
|
||||
--- a/bin/automake.in
|
||||
+++ b/bin/automake.in
|
||||
@@ -26,9 +26,11 @@ use 5.006;
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/bin/aclocal.in
|
||||
+++ b/bin/aclocal.in
|
||||
@@ -372,6 +372,12 @@ sub scan_m4_dirs ($$@)
|
||||
@@ -371,6 +371,12 @@ sub scan_m4_dirs ($$@)
|
||||
|
||||
foreach my $m4dir (@dirlist)
|
||||
{
|
||||
|
@ -1,6 +1,6 @@
|
||||
--- a/bin/automake.in
|
||||
+++ b/bin/automake.in
|
||||
@@ -4552,7 +4552,7 @@ sub handle_gettext ()
|
||||
@@ -4513,7 +4513,7 @@ sub handle_gettext ()
|
||||
&& grep ($_ eq 'intl', @subdirs));
|
||||
}
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
}
|
||||
|
||||
# Emit makefile footer.
|
||||
@@ -5677,7 +5677,7 @@ sub check_gnu_standards ()
|
||||
@@ -5641,7 +5641,7 @@ sub check_gnu_standards ()
|
||||
# otherwise require non-.md.
|
||||
my $required
|
||||
= (! -f $file && -f "$file.md") ? "$file.md" : $file;
|
||||
@ -18,7 +18,7 @@
|
||||
}
|
||||
|
||||
# Accept one of these three licenses; default to COPYING.
|
||||
@@ -5691,7 +5691,7 @@ sub check_gnu_standards ()
|
||||
@@ -5655,7 +5655,7 @@ sub check_gnu_standards ()
|
||||
last;
|
||||
}
|
||||
}
|
||||
|
@ -9,8 +9,8 @@ Subject: [PATCH] Allow other V values for verbosity
|
||||
|
||||
--- a/m4/silent.m4
|
||||
+++ b/m4/silent.m4
|
||||
@@ -53,7 +53,7 @@ case $enable_silent_rules in @%:@ (((
|
||||
esac
|
||||
@@ -43,7 +43,7 @@ else
|
||||
fi])
|
||||
if test $am_cv_make_support_nested_variables = yes; then
|
||||
dnl Using '$V' instead of '$(V)' breaks IRIX make.
|
||||
- AM_V='$(V)'
|
||||
|
@ -7,12 +7,13 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=xz
|
||||
PKG_VERSION:=5.4.6
|
||||
PKG_VERSION:=5.6.4
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
||||
PKG_SOURCE_URL:=@SF/lzmautils \
|
||||
PKG_SOURCE_URL:=https://github.com/tukaani-project/xz/releases/download/v$(PKG_VERSION) \
|
||||
@SF/lzmautils \
|
||||
http://tukaani.org/xz
|
||||
PKG_HASH:=913851b274e8e1d31781ec949f1c23e8dbcf0ecf6e73a2436dc21769dd3e6f49
|
||||
PKG_HASH:=176d510c30d80a23b8050bbc048f2ecaacb823ae48b6821727ed6591f0df9200
|
||||
PKG_CPE_ID:=cpe:/a:tukaani:xz
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
@ -11,12 +11,13 @@ PKG_NAME:=zlib
|
||||
PKG_VERSION:=1.3.1
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/madler/zlib/releases/download/v$(PKG_VERSION)
|
||||
PKG_HASH:=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23
|
||||
PKG_SOURCE_PROTO:=git
|
||||
PKG_SOURCE_URL:=https://github.com/madler/zlib
|
||||
PKG_SOURCE_VERSION:=51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
|
||||
PKG_MIRROR_HASH:=6558577038f4839057fad93afb295bf32e84dc9bd2c33512d40a5eab6d4889ef
|
||||
|
||||
PKG_LICENSE:=Zlib
|
||||
PKG_LICENSE_FILES:=README
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_CPE_ID:=cpe:/a:zlib:zlib
|
||||
|
||||
HOST_BUILD_PARALLEL:=1
|
||||
|
@ -1,11 +1,11 @@
|
||||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=zstd
|
||||
PKG_VERSION:=1.5.6
|
||||
PKG_VERSION:=1.5.7
|
||||
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL:=https://github.com/facebook/zstd/releases/download/v$(PKG_VERSION)
|
||||
PKG_HASH:=8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1
|
||||
PKG_HASH:=eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3
|
||||
|
||||
PKG_LICENSE:=BSD-3-Clause
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
|
@ -1,126 +0,0 @@
|
||||
From f1f1ae369a4cefd3474b3528e8d1847b18750605 Mon Sep 17 00:00:00 2001
|
||||
From: Christian Marangi <ansuelsmth@gmail.com>
|
||||
Date: Sat, 6 Apr 2024 14:41:54 +0200
|
||||
Subject: [PATCH] Provide variant pkg-config file for multi-threaded static lib
|
||||
|
||||
Multi-threaded static library require -pthread to correctly link and works.
|
||||
The pkg-config we provide tho only works with dynamic multi-threaded library
|
||||
and won't provide the correct libs and cflags values if lib-mt is used.
|
||||
|
||||
To handle this, introduce an env variable MT to permit advanced user to
|
||||
install and generate a correct pkg-config file for lib-mt or detect if
|
||||
lib-mt target is called.
|
||||
|
||||
With MT env set on calling make install-pc, libzstd.pc.in is a
|
||||
pkg-config file for a multi-threaded static library.
|
||||
|
||||
On calling make lib-mt, a libzstd.pc is generated for a multi-threaded
|
||||
static library as it's what asked by the user by forcing it.
|
||||
|
||||
libzstd.pc is changed to PHONY to force regeneration of it on calling
|
||||
lib targets or install-pc to handle case where the same directory is
|
||||
used for mixed compilation.
|
||||
|
||||
This was notice while migrating from meson to make build system where
|
||||
meson generates a correct .pc file while make doesn't.
|
||||
|
||||
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
|
||||
---
|
||||
lib/Makefile | 20 +++++++++++++++++++-
|
||||
lib/README.md | 4 ++++
|
||||
lib/libzstd.pc.in | 4 ++--
|
||||
3 files changed, 25 insertions(+), 3 deletions(-)
|
||||
|
||||
--- a/lib/Makefile
|
||||
+++ b/lib/Makefile
|
||||
@@ -63,6 +63,8 @@ CPPFLAGS_DYNLIB += -DZSTD_MULTITHREAD #
|
||||
LDFLAGS_DYNLIB += -pthread
|
||||
CPPFLAGS_STATICLIB += # static library build defaults to single-threaded
|
||||
|
||||
+# pkg-config Libs.private points to LDFLAGS_DYNLIB
|
||||
+PCLIB := $(LDFLAGS_DYNLIB)
|
||||
|
||||
ifeq ($(findstring GCC,$(CCVER)),GCC)
|
||||
decompress/zstd_decompress_block.o : CFLAGS+=-fno-tree-vectorize
|
||||
@@ -186,12 +188,15 @@ lib : libzstd.a libzstd
|
||||
%-mt : CPPFLAGS_DYNLIB := -DZSTD_MULTITHREAD
|
||||
%-mt : CPPFLAGS_STATICLIB := -DZSTD_MULTITHREAD
|
||||
%-mt : LDFLAGS_DYNLIB := -pthread
|
||||
+%-mt : PCLIB :=
|
||||
+%-mt : PCMTLIB := $(LDFLAGS_DYNLIB)
|
||||
%-mt : %
|
||||
@echo multi-threaded build completed
|
||||
|
||||
%-nomt : CPPFLAGS_DYNLIB :=
|
||||
%-nomt : LDFLAGS_DYNLIB :=
|
||||
%-nomt : CPPFLAGS_STATICLIB :=
|
||||
+%-nomt : PCLIB :=
|
||||
%-nomt : %
|
||||
@echo single-threaded build completed
|
||||
|
||||
@@ -292,6 +297,14 @@ PCLIBPREFIX := $(if $(findstring $(LIBDI
|
||||
# to PREFIX, rather than as a resolved value.
|
||||
PCEXEC_PREFIX := $(if $(HAS_EXPLICIT_EXEC_PREFIX),$(EXEC_PREFIX),$${prefix})
|
||||
|
||||
+
|
||||
+ifneq ($(MT),)
|
||||
+ PCLIB :=
|
||||
+ PCMTLIB := $(LDFLAGS_DYNLIB)
|
||||
+else
|
||||
+ PCLIB := $(LDFLAGS_DYNLIB)
|
||||
+endif
|
||||
+
|
||||
ifneq (,$(filter $(UNAME),FreeBSD NetBSD DragonFly))
|
||||
PKGCONFIGDIR ?= $(PREFIX)/libdata/pkgconfig
|
||||
else
|
||||
@@ -308,6 +321,10 @@ INSTALL_PROGRAM ?= $(INSTALL)
|
||||
INSTALL_DATA ?= $(INSTALL) -m 644
|
||||
|
||||
|
||||
+# pkg-config library define.
|
||||
+# For static single-threaded library declare -pthread in Libs.private
|
||||
+# For static multi-threaded library declare -pthread in Libs and Cflags
|
||||
+.PHONY: libzstd.pc
|
||||
libzstd.pc: libzstd.pc.in
|
||||
@echo creating pkgconfig
|
||||
@sed \
|
||||
@@ -316,7 +333,8 @@ libzstd.pc: libzstd.pc.in
|
||||
-e 's|@INCLUDEDIR@|$(PCINCPREFIX)$(PCINCDIR)|' \
|
||||
-e 's|@LIBDIR@|$(PCLIBPREFIX)$(PCLIBDIR)|' \
|
||||
-e 's|@VERSION@|$(VERSION)|' \
|
||||
- -e 's|@LIBS_PRIVATE@|$(LDFLAGS_DYNLIB)|' \
|
||||
+ -e 's|@LIBS_MT@|$(PCMTLIB)|' \
|
||||
+ -e 's|@LIBS_PRIVATE@|$(PCLIB)|' \
|
||||
$< >$@
|
||||
|
||||
.PHONY: install
|
||||
--- a/lib/README.md
|
||||
+++ b/lib/README.md
|
||||
@@ -27,12 +27,16 @@ Enabling multithreading requires 2 condi
|
||||
|
||||
For convenience, we provide a build target to generate multi and single threaded libraries:
|
||||
- Force enable multithreading on both dynamic and static libraries by appending `-mt` to the target, e.g. `make lib-mt`.
|
||||
+ Note that the `.pc` generated on calling `make lib-mt` will already include the require Libs and Cflags.
|
||||
- Force disable multithreading on both dynamic and static libraries by appending `-nomt` to the target, e.g. `make lib-nomt`.
|
||||
- By default, as mentioned before, dynamic library is multithreaded, and static library is single-threaded, e.g. `make lib`.
|
||||
|
||||
When linking a POSIX program with a multithreaded version of `libzstd`,
|
||||
note that it's necessary to invoke the `-pthread` flag during link stage.
|
||||
|
||||
+The `.pc` generated from `make install` or `make install-pc` always assume a single-threaded static library
|
||||
+is compiled. To correctly generate a `.pc` for the multi-threaded static library, set `MT=1` as ENV variable.
|
||||
+
|
||||
Multithreading capabilities are exposed
|
||||
via the [advanced API defined in `lib/zstd.h`](https://github.com/facebook/zstd/blob/v1.4.3/lib/zstd.h#L351).
|
||||
|
||||
--- a/lib/libzstd.pc.in
|
||||
+++ b/lib/libzstd.pc.in
|
||||
@@ -11,6 +11,6 @@ Name: zstd
|
||||
Description: fast lossless compression algorithm library
|
||||
URL: https://facebook.github.io/zstd/
|
||||
Version: @VERSION@
|
||||
-Libs: -L${libdir} -lzstd
|
||||
+Libs: -L${libdir} -lzstd @LIBS_MT@
|
||||
Libs.private: @LIBS_PRIVATE@
|
||||
-Cflags: -I${includedir}
|
||||
+Cflags: -I${includedir} @LIBS_MT@
|
Loading…
x
Reference in New Issue
Block a user