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_VERSION-6.6 = .79
|
||||||
LINUX_KERNEL_HASH-6.6.78 = 5aa39a9bd555133ad741058f9908a277e6b36bb928481e747d885b50aaaa93ed
|
LINUX_KERNEL_HASH-6.6.79 = 07a6f904470da1a099aa1683e3025a999dd82f2438f78b006b80c6ae2e9dfe8d
|
||||||
|
@ -8,12 +8,12 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=linux-firmware
|
PKG_NAME:=linux-firmware
|
||||||
PKG_VERSION:=20241110
|
PKG_VERSION:=20250211
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
PKG_SOURCE_URL:=@KERNEL/linux/kernel/firmware
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_HASH:=32e6d3eb5c7fcb69fe5d58976c6deafa0d6552719c6e74835064aff049d25bd7
|
PKG_HASH:=2de1345897bf839d532c5de0fdb348770ca2a5f4edfb21971582597abb45297d
|
||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
|
@ -1,14 +1,14 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=wireless-regdb
|
PKG_NAME:=wireless-regdb
|
||||||
PKG_VERSION:=2024.10.07
|
PKG_VERSION:=2025.02.20
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_LICENSE:=ISC
|
PKG_LICENSE:=ISC
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
PKG_SOURCE_URL:=@KERNEL/software/network/wireless-regdb/
|
||||||
PKG_HASH:=f76f2bd79a653e9f9dd50548d99d03a4a4eb157da056dfd5892f403ec28fb3d5
|
PKG_HASH:=57f8e7721cf5a880c13ae0c202edbb21092a060d45f9e9c59bcd2a8272bfa456
|
||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/db.txt
|
--- a/db.txt
|
||||||
+++ b/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
|
# 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
|
# Note: The transmit power for 5250-5350MHz bands can be raised by 3dBm when TPC is implemented
|
||||||
country CN: DFS-FCC
|
country CN: DFS-FCC
|
||||||
@ -12,7 +12,7 @@
|
|||||||
(5725 - 5850 @ 80), (33)
|
(5725 - 5850 @ 80), (33)
|
||||||
# 60 GHz band channels 1,4: 28dBm, channels 2,3: 44dBm
|
# 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
|
# 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)
|
(920 - 928 @ 8), (30)
|
||||||
(2400 - 2472 @ 40), (30)
|
(2400 - 2472 @ 40), (30)
|
||||||
# 5.15 ~ 5.25 GHz: 30 dBm for master mode, 23 dBm for clients
|
# 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_NAME:=ltq-vdsl-vr11-mei
|
||||||
PKG_VERSION:=1.11.1
|
PKG_VERSION:=1.11.1
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=4
|
||||||
PKG_BASE_NAME:=dsl_cpe_mei
|
PKG_BASE_NAME:=dsl_cpe_mei
|
||||||
|
|
||||||
UGW_VERSION=8.5.2.10
|
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
|
--- a/src/drv_mei_cpe_linux.h
|
||||||
+++ b/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
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,17,0))
|
|
||||||
+#define PDE_DATA pde_data
|
+#define PDE_DATA pde_data
|
||||||
+#endif
|
|
||||||
+
|
+
|
||||||
/**
|
/**
|
||||||
Function typedef for the Linux request_threaded_irq()
|
Function typedef for the Linux request_threaded_irq()
|
||||||
|
@ -1,14 +1,11 @@
|
|||||||
--- a/src/drv_mei_cpe_linux.c
|
--- a/src/drv_mei_cpe_linux.c
|
||||||
+++ b/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)));
|
("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);
|
||||||
mei_class = class_create(THIS_MODULE, devName);
|
|
||||||
+#else
|
|
||||||
+ mei_class = class_create(devName);
|
+ mei_class = class_create(devName);
|
||||||
+#endif
|
|
||||||
if (IS_ERR(mei_class))
|
if (IS_ERR(mei_class))
|
||||||
{
|
{
|
||||||
PRN_DBG_USR_NL( MEI_DRV,MEI_DRV_PRN_LEVEL_HIGH,
|
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_NAME:=ltq-vdsl-vr11
|
||||||
PKG_VERSION:=4.23.1
|
PKG_VERSION:=4.23.1
|
||||||
PKG_RELEASE:=3
|
PKG_RELEASE:=4
|
||||||
PKG_BASE_NAME:=dsl_cpe_api
|
PKG_BASE_NAME:=dsl_cpe_api
|
||||||
|
|
||||||
UGW_VERSION=8.5.2.10
|
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_NAME:=ltq-vdsl-vr9-mei
|
||||||
PKG_VERSION:=1.5.17.6
|
PKG_VERSION:=1.5.17.6
|
||||||
PKG_RELEASE:=6
|
PKG_RELEASE:=7
|
||||||
|
|
||||||
PKG_BASE_NAME:=drv_mei_cpe
|
PKG_BASE_NAME:=drv_mei_cpe
|
||||||
PKG_SOURCE:=$(PKG_BASE_NAME)-$(PKG_VERSION).tar.gz
|
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))
|
$(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
|
define KernelPackage/dma-buf
|
||||||
SUBMENU:=$(OTHER_MENU)
|
SUBMENU:=$(OTHER_MENU)
|
||||||
TITLE:=DMA shared buffer support
|
TITLE:=DMA shared buffer support
|
||||||
|
@ -11,13 +11,14 @@ PKG_NAME:=zlib
|
|||||||
PKG_VERSION:=1.3.1
|
PKG_VERSION:=1.3.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/madler/zlib/releases/download/v$(PKG_VERSION)
|
PKG_SOURCE_URL:=https://github.com/madler/zlib
|
||||||
PKG_HASH:=38ef96b8dfe510d42707d9c781877914792541133e1870841463bfa73f883e32
|
PKG_SOURCE_VERSION:=51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
|
||||||
|
PKG_MIRROR_HASH:=6558577038f4839057fad93afb295bf32e84dc9bd2c33512d40a5eab6d4889ef
|
||||||
|
|
||||||
PKG_LICENSE:=Zlib
|
PKG_LICENSE:=Zlib
|
||||||
PKG_LICENSE_FILES:=README
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
PKG_CPE_ID:=cpe:/a:gnu:zlib
|
PKG_CPE_ID:=cpe:/a:zlib:zlib
|
||||||
|
|
||||||
PKG_CONFIG_DEPENDS:= CONFIG_ZLIB_OPTIMIZE_SPEED
|
PKG_CONFIG_DEPENDS:= CONFIG_ZLIB_OPTIMIZE_SPEED
|
||||||
|
|
||||||
|
@ -9,7 +9,7 @@ include $(INCLUDE_DIR)/kernel.mk
|
|||||||
|
|
||||||
PKG_NAME:=ltq-vdsl-vr11-app
|
PKG_NAME:=ltq-vdsl-vr11-app
|
||||||
PKG_VERSION:=4.23.1
|
PKG_VERSION:=4.23.1
|
||||||
PKG_RELEASE:=5
|
PKG_RELEASE:=6
|
||||||
PKG_BASE_NAME:=dsl_cpe_control
|
PKG_BASE_NAME:=dsl_cpe_control
|
||||||
|
|
||||||
UGW_VERSION=8.5.2.10
|
UGW_VERSION=8.5.2.10
|
||||||
|
@ -45,7 +45,7 @@ is stopped on exit.
|
|||||||
{
|
{
|
||||||
+ memset(&sPowerManagementStateForcedTrigger, 0x0,
|
+ memset(&sPowerManagementStateForcedTrigger, 0x0,
|
||||||
+ sizeof(DSL_G997_PowerManagementStateForcedTrigger_t));
|
+ 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(
|
+ nRet = (DSL_Error_t)DSL_CPE_Ioctl(
|
||||||
+ DSL_CPE_GetGlobalContext()->fd[nDevice],
|
+ DSL_CPE_GetGlobalContext()->fd[nDevice],
|
||||||
|
@ -57,6 +57,11 @@ else
|
|||||||
CONFIGURE_ARGS += --disable-netlink --disable-pretty-dump
|
CONFIGURE_ARGS += --disable-netlink --disable-pretty-dump
|
||||||
endif
|
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
|
define Package/ethtool/install
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/ethtool $(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
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=iproute2
|
PKG_NAME:=iproute2
|
||||||
PKG_VERSION:=6.12.0
|
PKG_VERSION:=6.13.0
|
||||||
PKG_RELEASE:=2
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
PKG_SOURCE_URL:=@KERNEL/linux/utils/net/iproute2
|
||||||
PKG_HASH:=bbd141ef7b5d0127cc2152843ba61f274dc32814fa3e0f13e7d07a080bef53d9
|
PKG_HASH:=a43aa43338d882b44d01e549f3f105a92ae9feea32a82fae45a88e7a49302819
|
||||||
PKG_BUILD_PARALLEL:=1
|
PKG_BUILD_PARALLEL:=1
|
||||||
PKG_BUILD_DEPENDS:=iptables
|
PKG_BUILD_DEPENDS:=iptables
|
||||||
PKG_LICENSE:=GPL-2.0
|
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 ; \
|
sed -n '/'$$s'[^ ]* =/{s:.* \([^ ]*'$$s'[^ ]*\) .*:extern char \1[] __attribute__((weak)); if (!strcmp(sym, "\1")) return \1;:;p}' $$files ; \
|
||||||
--- a/ip/ip.c
|
--- a/ip/ip.c
|
||||||
+++ b/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,
|
fprintf(stderr,
|
||||||
"Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }\n"
|
"Usage: ip [ OPTIONS ] OBJECT { COMMAND | help }\n"
|
||||||
" ip [ -force ] -batch filename\n"
|
" ip [ -force ] -batch filename\n"
|
||||||
@ -43,7 +43,7 @@
|
|||||||
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
|
" OPTIONS := { -V[ersion] | -s[tatistics] | -d[etails] | -r[esolve] |\n"
|
||||||
" -h[uman-readable] | -iec | -j[son] | -p[retty] |\n"
|
" -h[uman-readable] | -iec | -j[son] | -p[retty] |\n"
|
||||||
" -f[amily] { inet | inet6 | mpls | bridge | link } |\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);
|
int (*func)(int argc, char **argv);
|
||||||
} cmds[] = {
|
} cmds[] = {
|
||||||
{ "address", do_ipaddr },
|
{ "address", do_ipaddr },
|
||||||
|
@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk
|
|||||||
PKG_NAME:=selinux-policy
|
PKG_NAME:=selinux-policy
|
||||||
PKG_SOURCE_PROTO:=git
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://git.defensec.nl/selinux-policy.git
|
PKG_SOURCE_URL:=https://git.defensec.nl/selinux-policy.git
|
||||||
PKG_VERSION:=1.2.5
|
PKG_VERSION:=2.1
|
||||||
PKG_MIRROR_HASH:=0b485aefed7ecc1ba3c5f5843cb3b10e9d7c55c09b361cd56933081c0dbdc223
|
PKG_MIRROR_HASH:=8ab9f734d2a81c8d396afb4f6783c67d31b76c0334bf8e564eb050f98356655b
|
||||||
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
|
PKG_SOURCE_VERSION:=v$(PKG_VERSION)
|
||||||
PKG_BUILD_DEPENDS:=secilc/host policycoreutils/host
|
PKG_BUILD_DEPENDS:=secilc/host policycoreutils/host
|
||||||
|
|
||||||
@ -44,10 +44,14 @@ endef
|
|||||||
define Package/selinux-policy/install
|
define Package/selinux-policy/install
|
||||||
$(INSTALL_DIR) $(1)/etc/selinux/$(PKG_NAME)/contexts/files/
|
$(INSTALL_DIR) $(1)/etc/selinux/$(PKG_NAME)/contexts/files/
|
||||||
$(INSTALL_DIR) $(1)/etc/selinux/$(PKG_NAME)/policy/
|
$(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_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
|
$(INSTALL_DATA) ./files/selinux-config $(1)/etc/selinux/config
|
||||||
endef
|
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);
|
pos_add_string(s, &s->cursor_pos, str, len);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
set_cursor(s, prev_pos);
|
||||||
|
}
|
||||||
fflush(s->output);
|
fflush(s->output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* Uart divisor latch read */
|
/* 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);
|
serial8250_set_divisor(port, baud, quot, frac);
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
|
|
||||||
--- a/kernel/cgroup/cgroup.c
|
--- a/kernel/cgroup/cgroup.c
|
||||||
+++ b/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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,7 +27,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
/**
|
/**
|
||||||
* cgroup_init - cgroup initialization
|
* cgroup_init - cgroup initialization
|
||||||
*
|
*
|
||||||
@@ -6096,6 +6099,12 @@ int __init cgroup_init(void)
|
@@ -6092,6 +6095,12 @@ int __init cgroup_init(void)
|
||||||
|
|
||||||
cgroup_unlock();
|
cgroup_unlock();
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
for_each_subsys(ss, ssid) {
|
for_each_subsys(ss, ssid) {
|
||||||
if (ss->early_init) {
|
if (ss->early_init) {
|
||||||
struct cgroup_subsys_state *css =
|
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))
|
strcmp(token, ss->legacy_name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -51,7 +51,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.org>
|
|||||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||||
pr_info("Disabling %s control group subsystem\n",
|
pr_info("Disabling %s control group subsystem\n",
|
||||||
ss->name);
|
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);
|
__setup("cgroup_disable=", cgroup_disable);
|
||||||
|
|
||||||
|
@ -1189,7 +1189,7 @@ Signed-off-by: Alexander Winkowski <dereference23@outlook.com>
|
|||||||
}
|
}
|
||||||
--- a/drivers/usb/core/hub.c
|
--- a/drivers/usb/core/hub.c
|
||||||
+++ b/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_dev->over_current_count++;
|
||||||
port_over_current_notify(port_dev);
|
port_over_current_notify(port_dev);
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||||||
|
|
||||||
--- a/kernel/cgroup/cgroup.c
|
--- a/kernel/cgroup/cgroup.c
|
||||||
+++ b/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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -158,7 +158,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||||||
/**
|
/**
|
||||||
* cgroup_init - cgroup initialization
|
* cgroup_init - cgroup initialization
|
||||||
*
|
*
|
||||||
@@ -6099,12 +6096,6 @@ int __init cgroup_init(void)
|
@@ -6095,12 +6092,6 @@ int __init cgroup_init(void)
|
||||||
|
|
||||||
cgroup_unlock();
|
cgroup_unlock();
|
||||||
|
|
||||||
@ -171,7 +171,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||||||
for_each_subsys(ss, ssid) {
|
for_each_subsys(ss, ssid) {
|
||||||
if (ss->early_init) {
|
if (ss->early_init) {
|
||||||
struct cgroup_subsys_state *css =
|
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))
|
strcmp(token, ss->legacy_name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -182,7 +182,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||||||
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
static_branch_disable(cgroup_subsys_enabled_key[i]);
|
||||||
pr_info("Disabling %s control group subsystem\n",
|
pr_info("Disabling %s control group subsystem\n",
|
||||||
ss->name);
|
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))
|
strcmp(token, ss->legacy_name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||||||
|
|
||||||
--- a/kernel/cgroup/cgroup.c
|
--- a/kernel/cgroup/cgroup.c
|
||||||
+++ b/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))
|
strcmp(token, ss->legacy_name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
@ -398,7 +398,7 @@ TARGET_DEVICES += meraki_mr26
|
|||||||
define Device/meraki_mr32
|
define Device/meraki_mr32
|
||||||
DEVICE_VENDOR := Meraki
|
DEVICE_VENDOR := Meraki
|
||||||
DEVICE_MODEL := MR32
|
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
|
DEVICE_DTS := bcm53016-meraki-mr32
|
||||||
# Meraki FW r23 tries to resize the part.safe partition before it will
|
# 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
|
# 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
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/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);
|
__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
|
--- a/include/linux/netdevice.h
|
||||||
+++ b/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);
|
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
|
#define QUECTEL_VENDOR_ID 0x2c7c
|
||||||
/* These Quectel products use Quectel's vendor ID */
|
/* 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, 0x0023)}, /* ONYX 3G device */
|
||||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */
|
||||||
.driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) },
|
.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 */
|
/* Quectel products using Qualcomm vendor ID */
|
||||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)},
|
||||||
{ USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20),
|
{ 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 },
|
.driver_info = ZLP },
|
||||||
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
{ USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
|
||||||
.driver_info = RSVD(4) },
|
.driver_info = RSVD(4) },
|
||||||
|
@ -157,7 +157,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
case RTN_THROW:
|
case RTN_THROW:
|
||||||
case RTN_UNREACHABLE:
|
case RTN_UNREACHABLE:
|
||||||
default:
|
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);
|
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.
|
* 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 ||
|
if (rtm->rtm_type == RTN_UNREACHABLE ||
|
||||||
rtm->rtm_type == RTN_BLACKHOLE ||
|
rtm->rtm_type == RTN_BLACKHOLE ||
|
||||||
rtm->rtm_type == RTN_PROHIBIT ||
|
rtm->rtm_type == RTN_PROHIBIT ||
|
||||||
@ -185,7 +185,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
cfg->fc_flags |= RTF_REJECT;
|
cfg->fc_flags |= RTF_REJECT;
|
||||||
|
|
||||||
if (rtm->rtm_type == RTN_LOCAL)
|
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
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
net->ipv6.ip6_prohibit_entry->dst.dev = dev;
|
||||||
net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(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->dst.dev = dev;
|
||||||
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev);
|
||||||
#endif
|
#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);
|
in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev);
|
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);
|
in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev);
|
||||||
#endif
|
#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
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
net->ipv6.fib6_has_custom_rules = false;
|
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,
|
net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template,
|
||||||
sizeof(*net->ipv6.ip6_prohibit_entry),
|
sizeof(*net->ipv6.ip6_prohibit_entry),
|
||||||
GFP_KERNEL);
|
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);
|
ip6_template_metrics, true);
|
||||||
INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached);
|
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;
|
net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops;
|
||||||
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst,
|
||||||
ip6_template_metrics, true);
|
ip6_template_metrics, true);
|
||||||
@@ -6551,6 +6597,8 @@ out:
|
@@ -6556,6 +6602,8 @@ out:
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
@ -243,7 +243,7 @@ Signed-off-by: Jonas Gorski <jogo@openwrt.org>
|
|||||||
out_ip6_prohibit_entry:
|
out_ip6_prohibit_entry:
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
kfree(net->ipv6.ip6_prohibit_entry);
|
||||||
out_ip6_null_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);
|
kfree(net->ipv6.ip6_null_entry);
|
||||||
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
#ifdef CONFIG_IPV6_MULTIPLE_TABLES
|
||||||
kfree(net->ipv6.ip6_prohibit_entry);
|
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);
|
kfree(net->ipv6.ip6_blk_hole_entry);
|
||||||
#endif
|
#endif
|
||||||
dst_entries_destroy(&net->ipv6.ip6_dst_ops);
|
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_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->dst.dev = init_net.loopback_dev;
|
||||||
init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(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)
|
static inline int io_type_enabled(struct pci_dev *pdev, unsigned int mask)
|
||||||
{
|
{
|
||||||
u16 cmd;
|
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,
|
DECLARE_PCI_FIXUP_CLASS_FINAL(PCI_ANY_ID, PCI_ANY_ID,
|
||||||
PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
|
PCI_CLASS_SERIAL_USB, 8, quirk_usb_early_handoff);
|
||||||
|
@ -739,7 +739,7 @@ define Device/linksys_whw03
|
|||||||
IMAGE_SIZE := 131072k
|
IMAGE_SIZE := 131072k
|
||||||
IMAGES += factory.bin
|
IMAGES += factory.bin
|
||||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | linksys-image type=WHW03
|
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
|
kmod-fs-ext4 e2fsprogs kmod-fs-f2fs mkf2fs losetup ipq-wifi-linksys_whw03
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += linksys_whw03
|
TARGET_DEVICES += linksys_whw03
|
||||||
@ -758,7 +758,7 @@ define Device/linksys_whw03v2
|
|||||||
UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF
|
UBINIZE_OPTS := -E 5 # EOD marks to "hide" factory sig at EOF
|
||||||
IMAGES += factory.bin
|
IMAGES += factory.bin
|
||||||
IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=WHW03v2
|
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
|
endef
|
||||||
TARGET_DEVICES += linksys_whw03v2
|
TARGET_DEVICES += linksys_whw03v2
|
||||||
|
|
||||||
@ -1127,7 +1127,7 @@ define Device/teltonika_rutx10
|
|||||||
PAGESIZE := 2048
|
PAGESIZE := 2048
|
||||||
FILESYSTEMS := squashfs
|
FILESYSTEMS := squashfs
|
||||||
IMAGE/factory.ubi := append-ubi | qsdk-ipq-factory-nand | append-rutx-metadata
|
IMAGE/factory.ubi := append-ubi | qsdk-ipq-factory-nand | append-rutx-metadata
|
||||||
DEVICE_PACKAGES := kmod-bluetooth
|
DEVICE_PACKAGES := kmod-btusb
|
||||||
endef
|
endef
|
||||||
# Missing DSA Setup
|
# Missing DSA Setup
|
||||||
#TARGET_DEVICES += teltonika_rutx10
|
#TARGET_DEVICES += teltonika_rutx10
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
},
|
},
|
||||||
[PORT_NPCM] = {
|
[PORT_NPCM] = {
|
||||||
.name = "Nuvoton 16550",
|
.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 long flags;
|
||||||
unsigned int baud, quot, frac = 0;
|
unsigned int baud, quot, frac = 0;
|
||||||
|
|
||||||
|
@ -208,7 +208,7 @@ define Device/linksys_mx4200v1
|
|||||||
$(call Device/linksys_mx4x00)
|
$(call Device/linksys_mx4x00)
|
||||||
DEVICE_MODEL := MX4200
|
DEVICE_MODEL := MX4200
|
||||||
DEVICE_VARIANT := v1
|
DEVICE_VARIANT := v1
|
||||||
DEVICE_PACKAGES += kmod-bluetooth
|
DEVICE_PACKAGES += kmod-hci-uart
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += linksys_mx4200v1
|
TARGET_DEVICES += linksys_mx4200v1
|
||||||
|
|
||||||
@ -241,7 +241,7 @@ define Device/linksys_mx8500
|
|||||||
$(call Device/linksys_mx)
|
$(call Device/linksys_mx)
|
||||||
DEVICE_MODEL := MX8500
|
DEVICE_MODEL := MX8500
|
||||||
DEVICE_PACKAGES += ipq-wifi-linksys_mx8500 kmod-ath11k-pci \
|
DEVICE_PACKAGES += ipq-wifi-linksys_mx8500 kmod-ath11k-pci \
|
||||||
ath11k-firmware-qcn9074 kmod-bluetooth
|
ath11k-firmware-qcn9074 kmod-hci-uart
|
||||||
endef
|
endef
|
||||||
TARGET_DEVICES += linksys_mx8500
|
TARGET_DEVICES += linksys_mx8500
|
||||||
|
|
||||||
@ -545,6 +545,6 @@ define Device/zyxel_nbg7815
|
|||||||
DEVICE_DTS_CONFIG := config@nbg7815
|
DEVICE_DTS_CONFIG := config@nbg7815
|
||||||
SOC := ipq8074
|
SOC := ipq8074
|
||||||
DEVICE_PACKAGES := kmod-fs-f2fs f2fs-tools ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci \
|
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
|
endef
|
||||||
TARGET_DEVICES += zyxel_nbg7815
|
TARGET_DEVICES += zyxel_nbg7815
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
|
|
||||||
--- a/drivers/media/usb/uvc/uvc_driver.c
|
--- a/drivers/media/usb/uvc/uvc_driver.c
|
||||||
+++ b/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,
|
.bInterfaceSubClass = 1,
|
||||||
.bInterfaceProtocol = 0,
|
.bInterfaceProtocol = 0,
|
||||||
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
|
.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/kobject.h>
|
||||||
+#include <linux/workqueue.h>
|
+#include <linux/workqueue.h>
|
||||||
|
|
||||||
|
#include <media/jpeg.h>
|
||||||
#include <media/v4l2-common.h>
|
#include <media/v4l2-common.h>
|
||||||
|
@@ -1321,9 +1326,149 @@ static void uvc_video_decode_data(struct
|
||||||
@@ -1296,9 +1301,149 @@ static void uvc_video_decode_data(struct
|
|
||||||
uvc_urb->async_operations++;
|
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. */
|
/* Mark the buffer as done if the EOF marker is set. */
|
||||||
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
|
if (data[1] & UVC_STREAM_EOF && buf->bytesused != 0) {
|
||||||
uvc_dbg(stream->dev, FRAME, "Frame complete (EOF found)\n");
|
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)
|
if (npackets == 0)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
@ -225,16 +225,16 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
|
|||||||
for_each_uvc_urb(uvc_urb, stream) {
|
for_each_uvc_urb(uvc_urb, stream) {
|
||||||
--- a/drivers/media/usb/uvc/uvcvideo.h
|
--- a/drivers/media/usb/uvc/uvcvideo.h
|
||||||
+++ b/drivers/media/usb/uvc/uvcvideo.h
|
+++ b/drivers/media/usb/uvc/uvcvideo.h
|
||||||
@@ -76,6 +76,8 @@
|
@@ -77,6 +77,8 @@
|
||||||
#define UVC_QUIRK_NO_RESET_RESUME 0x00004000
|
|
||||||
#define UVC_QUIRK_DISABLE_AUTOSUSPEND 0x00008000
|
#define UVC_QUIRK_DISABLE_AUTOSUSPEND 0x00008000
|
||||||
#define UVC_QUIRK_INVALID_DEVICE_SOF 0x00010000
|
#define UVC_QUIRK_INVALID_DEVICE_SOF 0x00010000
|
||||||
+#define UVC_QUIRK_MOTION 0x00020000
|
#define UVC_QUIRK_MJPEG_NO_EOF 0x00020000
|
||||||
+#define UVC_QUIRK_SINGLE_ISO 0x00040000
|
+#define UVC_QUIRK_MOTION 0x00040000
|
||||||
|
+#define UVC_QUIRK_SINGLE_ISO 0x00080000
|
||||||
|
|
||||||
/* Format flags */
|
/* Format flags */
|
||||||
#define UVC_FMT_FLAG_COMPRESSED 0x00000001
|
#define UVC_FMT_FLAG_COMPRESSED 0x00000001
|
||||||
@@ -586,6 +588,7 @@ struct uvc_device {
|
@@ -587,6 +589,7 @@ struct uvc_device {
|
||||||
|
|
||||||
struct input_dev *input;
|
struct input_dev *input;
|
||||||
char input_phys[64];
|
char input_phys[64];
|
||||||
|
@ -22,7 +22,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||||||
#define PAD_DS_TUNE 0x188
|
#define PAD_DS_TUNE 0x188
|
||||||
#define PAD_CMD_TUNE 0x18c
|
#define PAD_CMD_TUNE 0x18c
|
||||||
#define EMMC51_CFG0 0x204
|
#define EMMC51_CFG0 0x204
|
||||||
@@ -400,6 +404,7 @@ struct mtk_mmc_compatible {
|
@@ -402,6 +406,7 @@ struct mtk_mmc_compatible {
|
||||||
bool enhance_rx;
|
bool enhance_rx;
|
||||||
bool support_64g;
|
bool support_64g;
|
||||||
bool use_internal_cd;
|
bool use_internal_cd;
|
||||||
@ -30,7 +30,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct msdc_tune_para {
|
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,
|
.stop_clk_fix = false,
|
||||||
.enhance_rx = false,
|
.enhance_rx = false,
|
||||||
.use_internal_cd = true,
|
.use_internal_cd = true,
|
||||||
@ -38,7 +38,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||||||
};
|
};
|
||||||
|
|
||||||
static const struct mtk_mmc_compatible mt7622_compat = {
|
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);
|
writel(0, host->base + MSDC_IOCON);
|
||||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
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);
|
sdr_set_bits(host->base + EMMC50_CFG0, EMMC50_CFG_CFCSTS_SEL);
|
||||||
|
|
||||||
if (host->dev_comp->stop_clk_fix) {
|
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);
|
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 {
|
&firmware {
|
||||||
openwrt,ih-magic = <0x4e474335>;
|
openwrt,ih-magic = <0x4e474335>;
|
||||||
};
|
};
|
||||||
|
@ -9,6 +9,8 @@ define Device/xikestor_sks8300-8x
|
|||||||
SOC := rtl9303
|
SOC := rtl9303
|
||||||
DEVICE_VENDOR := XikeStor
|
DEVICE_VENDOR := XikeStor
|
||||||
DEVICE_MODEL := SKS8300-8X
|
DEVICE_MODEL := SKS8300-8X
|
||||||
|
DEVICE_ALT0_VENDOR := ONTi
|
||||||
|
DEVICE_ALT0_MODEL := ONT-S508CL-8S
|
||||||
BLOCKSIZE := 64k
|
BLOCKSIZE := 64k
|
||||||
KERNEL_SIZE := 8192k
|
KERNEL_SIZE := 8192k
|
||||||
IMAGE_SIZE := 30720k
|
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)
|
if (termios->c_cflag & CRTSCTS)
|
||||||
up->mcr |= UART_MCR_AFE;
|
up->mcr |= UART_MCR_AFE;
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ include $(TOPDIR)/rules.mk
|
|||||||
ARCH:=arm
|
ARCH:=arm
|
||||||
BOARD:=sunxi
|
BOARD:=sunxi
|
||||||
BOARDNAME:=Allwinner ARM SoCs
|
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
|
SUBTARGETS:=cortexa8 cortexa7 cortexa53
|
||||||
|
|
||||||
KERNEL_PATCHVER:=6.6
|
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
|
--- a/bin/autoheader.in
|
||||||
+++ b/bin/autoheader.in
|
+++ b/bin/autoheader.in
|
||||||
@@ -30,9 +30,12 @@ use 5.006;
|
@@ -30,9 +30,12 @@ use 5.006;
|
||||||
|
@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk
|
|||||||
|
|
||||||
PKG_NAME:=automake
|
PKG_NAME:=automake
|
||||||
PKG_CPE_ID:=cpe:/a:gnu: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_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_SOURCE_URL:=@GNU/automake
|
||||||
PKG_HASH:=8920c1fc411e13b90bf704ef9db6f29d540e76d232cb3b2c9f4dc4cc599bd990
|
PKG_HASH:=07bd24ad08a64bc17250ce09ec56e921d6343903943e99ccf63bbf0705e34605
|
||||||
|
|
||||||
include $(INCLUDE_DIR)/host-build.mk
|
include $(INCLUDE_DIR)/host-build.mk
|
||||||
|
|
||||||
@ -21,7 +21,7 @@ HOST_CONFIGURE_ARGS += \
|
|||||||
--disable-silent-rules
|
--disable-silent-rules
|
||||||
|
|
||||||
HOST_CONFIGURE_VARS += \
|
HOST_CONFIGURE_VARS += \
|
||||||
PERL="$(shell command -v perl)" \
|
PERL="/usr/bin/env perl" \
|
||||||
am_cv_prog_PERL_ithreads=no
|
am_cv_prog_PERL_ithreads=no
|
||||||
|
|
||||||
define Host/Configure
|
define Host/Configure
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
# We need at least this version for CLONE support.
|
# We need at least this version for CLONE support.
|
||||||
--- a/bin/aclocal.in
|
--- a/bin/aclocal.in
|
||||||
+++ b/bin/aclocal.in
|
+++ b/bin/aclocal.in
|
||||||
@@ -23,10 +23,12 @@ use 5.006;
|
@@ -23,9 +23,11 @@ use 5.006;
|
||||||
use strict;
|
use strict;
|
||||||
use warnings FATAL => 'all';
|
use warnings FATAL => 'all';
|
||||||
|
|
||||||
@ -20,23 +20,21 @@
|
|||||||
BEGIN
|
BEGIN
|
||||||
{
|
{
|
||||||
- unshift (@INC, '@datadir@/@PACKAGE@-@APIVERSION@')
|
- 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@'))
|
+ 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;
|
@@ -65,8 +67,8 @@ $perl_threads = 0;
|
||||||
# --aclocal-path option/ACLOCAL_PATH environment variable, and reset
|
# ACLOCAL_PATH environment variable, and reset with the '--system-acdir'
|
||||||
# with the '--system-acdir' option.
|
# option.
|
||||||
my @user_includes = ();
|
my @user_includes = ();
|
||||||
-my @automake_includes = ('@datadir@/aclocal-' . $APIVERSION);
|
-my @automake_includes = ('@datadir@/aclocal-' . $APIVERSION);
|
||||||
-my @system_includes = ('@datadir@/aclocal');
|
-my @system_includes = ('@datadir@/aclocal');
|
||||||
+my @automake_includes = ($ENV{'STAGING_DIR_HOST'} ? $ENV{'STAGING_DIR_HOST'} . "/share/aclocal-$APIVERSION" : "@datadir@/aclocal-$APIVERSION");
|
+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 @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].
|
# Whether we should copy M4 file in $user_includes[0].
|
||||||
|
my $install = 0;
|
||||||
--- a/bin/automake.in
|
--- a/bin/automake.in
|
||||||
+++ b/bin/automake.in
|
+++ b/bin/automake.in
|
||||||
@@ -26,9 +26,11 @@ use 5.006;
|
@@ -26,9 +26,11 @@ use 5.006;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/bin/aclocal.in
|
--- a/bin/aclocal.in
|
||||||
+++ b/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)
|
foreach my $m4dir (@dirlist)
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
--- a/bin/automake.in
|
--- a/bin/automake.in
|
||||||
+++ b/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));
|
&& grep ($_ eq 'intl', @subdirs));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9,7 +9,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Emit makefile footer.
|
# Emit makefile footer.
|
||||||
@@ -5677,7 +5677,7 @@ sub check_gnu_standards ()
|
@@ -5641,7 +5641,7 @@ sub check_gnu_standards ()
|
||||||
# otherwise require non-.md.
|
# otherwise require non-.md.
|
||||||
my $required
|
my $required
|
||||||
= (! -f $file && -f "$file.md") ? "$file.md" : $file;
|
= (! -f $file && -f "$file.md") ? "$file.md" : $file;
|
||||||
@ -18,7 +18,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Accept one of these three licenses; default to COPYING.
|
# 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;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,8 +9,8 @@ Subject: [PATCH] Allow other V values for verbosity
|
|||||||
|
|
||||||
--- a/m4/silent.m4
|
--- a/m4/silent.m4
|
||||||
+++ b/m4/silent.m4
|
+++ b/m4/silent.m4
|
||||||
@@ -53,7 +53,7 @@ case $enable_silent_rules in @%:@ (((
|
@@ -43,7 +43,7 @@ else
|
||||||
esac
|
fi])
|
||||||
if test $am_cv_make_support_nested_variables = yes; then
|
if test $am_cv_make_support_nested_variables = yes; then
|
||||||
dnl Using '$V' instead of '$(V)' breaks IRIX make.
|
dnl Using '$V' instead of '$(V)' breaks IRIX make.
|
||||||
- AM_V='$(V)'
|
- AM_V='$(V)'
|
||||||
|
@ -7,12 +7,13 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=xz
|
PKG_NAME:=xz
|
||||||
PKG_VERSION:=5.4.6
|
PKG_VERSION:=5.6.4
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.bz2
|
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
|
http://tukaani.org/xz
|
||||||
PKG_HASH:=913851b274e8e1d31781ec949f1c23e8dbcf0ecf6e73a2436dc21769dd3e6f49
|
PKG_HASH:=176d510c30d80a23b8050bbc048f2ecaacb823ae48b6821727ed6591f0df9200
|
||||||
PKG_CPE_ID:=cpe:/a:tukaani:xz
|
PKG_CPE_ID:=cpe:/a:tukaani:xz
|
||||||
|
|
||||||
HOST_BUILD_PARALLEL:=1
|
HOST_BUILD_PARALLEL:=1
|
||||||
|
@ -11,12 +11,13 @@ PKG_NAME:=zlib
|
|||||||
PKG_VERSION:=1.3.1
|
PKG_VERSION:=1.3.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://github.com/madler/zlib/releases/download/v$(PKG_VERSION)
|
PKG_SOURCE_URL:=https://github.com/madler/zlib
|
||||||
PKG_HASH:=9a93b2b7dfdac77ceba5a558a580e74667dd6fede4585b91eefb60f03b72df23
|
PKG_SOURCE_VERSION:=51b7f2abdade71cd9bb0e7a373ef2610ec6f9daf
|
||||||
|
PKG_MIRROR_HASH:=6558577038f4839057fad93afb295bf32e84dc9bd2c33512d40a5eab6d4889ef
|
||||||
|
|
||||||
PKG_LICENSE:=Zlib
|
PKG_LICENSE:=Zlib
|
||||||
PKG_LICENSE_FILES:=README
|
PKG_LICENSE_FILES:=LICENSE
|
||||||
PKG_CPE_ID:=cpe:/a:zlib:zlib
|
PKG_CPE_ID:=cpe:/a:zlib:zlib
|
||||||
|
|
||||||
HOST_BUILD_PARALLEL:=1
|
HOST_BUILD_PARALLEL:=1
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=zstd
|
PKG_NAME:=zstd
|
||||||
PKG_VERSION:=1.5.6
|
PKG_VERSION:=1.5.7
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=https://github.com/facebook/zstd/releases/download/v$(PKG_VERSION)
|
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:=BSD-3-Clause
|
||||||
PKG_LICENSE_FILES:=LICENSE
|
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