mirror of
https://github.com/Fishwaldo/build.git
synced 2025-03-16 11:51:36 +00:00
Changes to build script and patches adjustment (#1423)
- change console welcome text - changed display manager to lightdm by default and remove nodm completly - desktop login manager enabled by default, toogle can be done with armbian-config - added URL to the build script and commit hash to /etc/armbian-release file - added debconf-utils,html2text,mmc-utils,sunxi-tools to the base and additional pkg list - added synaptic package manager and onboard keyboard to the desktop base - changed motd console welcome text to: Welcome to Debian Stretch with Armbian Linux 5.1.6-sunxi - added "logout" to the panel/menu - added normal users to additional groups: disk tty users games * Adjust tabs and alter displaying build options at the end - hide empty ones * Fix wrong MOTD message, adjust logic to autologin by default and request login for both notebooks * Making fs cache naming more intuitive, rename script * Move additional kernel drivers into separate file. Add AUFS for K5.1 this way, attach wireguard sources to last known working tag. master is broken atm * Add two more extra wireless drivers 88x2BU, (improved) 8811EU and introduce switch EXTRAWIFI which is enabled by default * Move 8812AU to the same version we have now. More recent has some performance issues in AP mode. Adjust configuration, add mvebut-dev 5.1.y kernel * Enable Wireguard also on 3.10.y since it was fixed upstream. Attach bach to master branch since its working now * Rockchip64 & RK3399 - upstream patches and remove deprecated patches, mvebu64 add DEV kernel attached to 5.1.y * Enable BT on Tinkerboard CLI images as well * cubox-i move to 5.1.y and enable missing HDMI * Bugfixes for adding wireless driver to Kconfig. Adjusted RK3399 kernel due to upstream changes at FriendlyARM - does not boot yet. Changes has to be extract from their commits. Removed patches with RTL8188EU since we add more recent driver with a new precedure. Small fixes mvebu-default, udoo-next, s56818-next, ... remove deprecated patches. * Boot-able RK3399-default config, add upstream patches for K4.4.y mvebu-default/udoo-next * Adjust overclocking patch to meet upstream changes * Odroid XU4 - remove deprecated kernel patches
This commit is contained in:
parent
4a3ca5e075
commit
633242e835
97 changed files with 27708 additions and 3258877 deletions
|
@ -3,8 +3,8 @@ BOARD_NAME="Cubox i2eX/i4"
|
|||
BOARDFAMILY="cubox"
|
||||
BOOTCONFIG="mx6_cubox-i_config"
|
||||
#
|
||||
MODULES="bonding"
|
||||
MODULES_NEXT="bonding"
|
||||
MODULES=""
|
||||
MODULES_NEXT="dw_hdmi_i2s_audio dw_axi_dmac_platform dw_hdmi_ahb_audio dw_hdmi_imx imx_pxp imx_sdma imxdrm"
|
||||
#
|
||||
KERNEL_TARGET="default,next"
|
||||
CLI_TARGET="stretch,bionic:default,next"
|
||||
|
|
|
@ -6,7 +6,7 @@ MODULES=""
|
|||
MODULES_NEXT=""
|
||||
BUILD_DESKTOP="no"
|
||||
#
|
||||
KERNEL_TARGET="default,next"
|
||||
KERNEL_TARGET="default,next,dev"
|
||||
CLI_TARGET="stretch,bionic:next"
|
||||
#
|
||||
CLI_BETA_TARGET=""
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.14.119 Kernel Configuration
|
||||
# Linux/arm 4.14.128 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
|
@ -2422,7 +2422,6 @@ CONFIG_ATH10K_USB=m
|
|||
# CONFIG_ATH10K_DEBUG is not set
|
||||
# CONFIG_ATH10K_DEBUGFS is not set
|
||||
# CONFIG_WCN36XX is not set
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_WLAN_VENDOR_ATMEL=y
|
||||
# CONFIG_ATMEL is not set
|
||||
# CONFIG_AT76C50X_USB is not set
|
||||
|
@ -2551,6 +2550,8 @@ CONFIG_WLCORE=m
|
|||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.14.123 Kernel Configuration
|
||||
# Linux/arm64 4.14.128 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_64BIT=y
|
||||
|
@ -2142,6 +2142,8 @@ CONFIG_WLCORE=m
|
|||
# CONFIG_WLCORE_SPI is not set
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 5.1.7 Kernel Configuration
|
||||
# Linux/arm64 5.1.12 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -2226,6 +2226,8 @@ CONFIG_WLCORE=m
|
|||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.19.48 Kernel Configuration
|
||||
# Linux/arm64 4.19.53 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -2240,6 +2240,8 @@ CONFIG_WLCORE=m
|
|||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -2450,6 +2450,9 @@ CONFIG_WLCORE=m
|
|||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_ZD1211RW=m
|
||||
# CONFIG_ZD1211RW_DEBUG is not set
|
||||
|
|
|
@ -2484,6 +2484,7 @@ CONFIG_RTL8XXXU_UNTESTED=y
|
|||
# CONFIG_WLAN_VENDOR_RSI is not set
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
# CONFIG_WLAN_VENDOR_ZYDAS is not set
|
||||
CONFIG_WLAN_VENDOR_QUANTENNA=y
|
||||
|
|
|
@ -2616,6 +2616,8 @@ CONFIG_WLCORE=m
|
|||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.19.46 Kernel Configuration
|
||||
# Linux/arm64 4.19.53 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -9,6 +9,7 @@
|
|||
CONFIG_CC_IS_GCC=y
|
||||
CONFIG_GCC_VERSION=70401
|
||||
CONFIG_CLANG_VERSION=0
|
||||
CONFIG_CC_HAS_ASM_GOTO=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
CONFIG_BUILDTIME_EXTABLE_SORT=y
|
||||
CONFIG_THREAD_INFO_IN_TASK=y
|
||||
|
@ -359,6 +360,7 @@ CONFIG_ARM64_ERRATUM_834220=y
|
|||
CONFIG_ARM64_ERRATUM_845719=y
|
||||
CONFIG_ARM64_ERRATUM_843419=y
|
||||
CONFIG_ARM64_ERRATUM_1024718=y
|
||||
CONFIG_ARM64_ERRATUM_1463225=y
|
||||
CONFIG_CAVIUM_ERRATUM_22375=y
|
||||
CONFIG_CAVIUM_ERRATUM_23144=y
|
||||
CONFIG_CAVIUM_ERRATUM_23154=y
|
||||
|
@ -2882,6 +2884,9 @@ CONFIG_WLCORE=m
|
|||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.0.12 Kernel Configuration
|
||||
# Linux/arm 5.1.12 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -589,7 +589,6 @@ CONFIG_ARM_PSCI_FW=y
|
|||
CONFIG_DMIID=y
|
||||
# CONFIG_DMI_SYSFS is not set
|
||||
# CONFIG_FW_CFG_SYSFS is not set
|
||||
# CONFIG_INTEL_STRATIX10_SERVICE is not set
|
||||
CONFIG_HAVE_ARM_SMCCC=y
|
||||
# CONFIG_GOOGLE_FIRMWARE is not set
|
||||
|
||||
|
@ -678,6 +677,7 @@ CONFIG_ARCH_MMAP_RND_BITS=8
|
|||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_OLD_SIGACTION=y
|
||||
CONFIG_64BIT_TIME=y
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
|
||||
|
@ -922,7 +922,7 @@ CONFIG_NF_CONNTRACK_TIMEOUT=y
|
|||
CONFIG_NF_CONNTRACK_TIMESTAMP=y
|
||||
CONFIG_NF_CONNTRACK_LABELS=y
|
||||
CONFIG_NF_CT_PROTO_DCCP=y
|
||||
CONFIG_NF_CT_PROTO_GRE=m
|
||||
CONFIG_NF_CT_PROTO_GRE=y
|
||||
CONFIG_NF_CT_PROTO_SCTP=y
|
||||
CONFIG_NF_CT_PROTO_UDPLITE=y
|
||||
CONFIG_NF_CONNTRACK_AMANDA=m
|
||||
|
@ -948,6 +948,7 @@ CONFIG_NF_NAT_IRC=m
|
|||
CONFIG_NF_NAT_SIP=m
|
||||
CONFIG_NF_NAT_TFTP=m
|
||||
CONFIG_NF_NAT_REDIRECT=y
|
||||
CONFIG_NF_NAT_MASQUERADE=y
|
||||
CONFIG_NETFILTER_SYNPROXY=m
|
||||
CONFIG_NF_TABLES=m
|
||||
CONFIG_NF_TABLES_SET=m
|
||||
|
@ -1152,11 +1153,6 @@ CONFIG_NF_DUP_IPV4=m
|
|||
CONFIG_NF_LOG_ARP=m
|
||||
CONFIG_NF_LOG_IPV4=m
|
||||
CONFIG_NF_REJECT_IPV4=m
|
||||
CONFIG_NF_NAT_IPV4=m
|
||||
CONFIG_NF_NAT_MASQUERADE_IPV4=y
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
CONFIG_NFT_MASQ_IPV4=m
|
||||
CONFIG_NFT_REDIR_IPV4=m
|
||||
CONFIG_NF_NAT_SNMP_BASIC=m
|
||||
CONFIG_NF_NAT_PPTP=m
|
||||
CONFIG_NF_NAT_H323=m
|
||||
|
@ -1188,9 +1184,6 @@ CONFIG_NF_SOCKET_IPV6=m
|
|||
CONFIG_NF_TPROXY_IPV6=m
|
||||
CONFIG_NF_TABLES_IPV6=y
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV6=m
|
||||
CONFIG_NFT_MASQ_IPV6=m
|
||||
CONFIG_NFT_REDIR_IPV6=m
|
||||
CONFIG_NFT_REJECT_IPV6=m
|
||||
CONFIG_NFT_DUP_IPV6=m
|
||||
CONFIG_NFT_FIB_IPV6=m
|
||||
|
@ -1198,8 +1191,6 @@ CONFIG_NF_FLOW_TABLE_IPV6=m
|
|||
CONFIG_NF_DUP_IPV6=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
CONFIG_NF_LOG_IPV6=m
|
||||
CONFIG_NF_NAT_IPV6=m
|
||||
CONFIG_NF_NAT_MASQUERADE_IPV6=y
|
||||
CONFIG_IP6_NF_IPTABLES=m
|
||||
CONFIG_IP6_NF_MATCH_AH=m
|
||||
CONFIG_IP6_NF_MATCH_EUI64=m
|
||||
|
@ -1409,7 +1400,6 @@ CONFIG_LWTUNNEL_BPF=y
|
|||
CONFIG_DST_CACHE=y
|
||||
CONFIG_GRO_CELLS=y
|
||||
# CONFIG_NET_DEVLINK is not set
|
||||
CONFIG_MAY_USE_DEVLINK=y
|
||||
CONFIG_FAILOVER=y
|
||||
CONFIG_HAVE_EBPF_JIT=y
|
||||
|
||||
|
@ -1435,6 +1425,7 @@ CONFIG_PCIEASPM_DEFAULT=y
|
|||
CONFIG_PCIE_PME=y
|
||||
# CONFIG_PCIE_DPC is not set
|
||||
# CONFIG_PCIE_PTM is not set
|
||||
# CONFIG_PCIE_BW is not set
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCI_MSI_IRQ_DOMAIN=y
|
||||
CONFIG_PCI_QUIRKS=y
|
||||
|
@ -1524,17 +1515,6 @@ CONFIG_REGMAP_MMIO=y
|
|||
CONFIG_REGMAP_IRQ=y
|
||||
CONFIG_DMA_SHARED_BUFFER=y
|
||||
# CONFIG_DMA_FENCE_TRACE is not set
|
||||
CONFIG_DMA_CMA=y
|
||||
|
||||
#
|
||||
# Default contiguous memory area size:
|
||||
#
|
||||
CONFIG_CMA_SIZE_MBYTES=64
|
||||
CONFIG_CMA_SIZE_SEL_MBYTES=y
|
||||
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
|
||||
# CONFIG_CMA_SIZE_SEL_MIN is not set
|
||||
# CONFIG_CMA_SIZE_SEL_MAX is not set
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
CONFIG_GENERIC_ARCH_TOPOLOGY=y
|
||||
|
||||
#
|
||||
|
@ -1642,7 +1622,6 @@ CONFIG_MTD_NAND_BRCMNAND=y
|
|||
# CONFIG_MTD_LPDDR is not set
|
||||
# CONFIG_MTD_LPDDR2_NVM is not set
|
||||
CONFIG_MTD_SPI_NOR=y
|
||||
# CONFIG_MTD_MT81xx_NOR is not set
|
||||
CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y
|
||||
# CONFIG_SPI_CADENCE_QUADSPI is not set
|
||||
# CONFIG_SPI_MTK_QUADSPI is not set
|
||||
|
@ -1877,7 +1856,6 @@ CONFIG_SCSI_LOWLEVEL=y
|
|||
# CONFIG_SCSI_PM8001 is not set
|
||||
# CONFIG_SCSI_VIRTIO is not set
|
||||
# CONFIG_SCSI_DH is not set
|
||||
# CONFIG_SCSI_OSD_INITIATOR is not set
|
||||
CONFIG_ATA=y
|
||||
CONFIG_ATA_VERBOSE_ERROR=y
|
||||
CONFIG_SATA_PMP=y
|
||||
|
@ -2495,6 +2473,8 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
# CONFIG_USB_ZD1201 is not set
|
||||
|
@ -3651,8 +3631,6 @@ CONFIG_V4L_PLATFORM_DRIVERS=y
|
|||
# CONFIG_VIDEO_CADENCE is not set
|
||||
# CONFIG_VIDEO_ASPEED is not set
|
||||
# CONFIG_VIDEO_MUX is not set
|
||||
CONFIG_SOC_CAMERA=m
|
||||
CONFIG_SOC_CAMERA_PLATFORM=m
|
||||
# CONFIG_VIDEO_AM437X_VPFE is not set
|
||||
# CONFIG_VIDEO_XILINX is not set
|
||||
# CONFIG_VIDEO_TI_CAL is not set
|
||||
|
@ -3731,24 +3709,6 @@ CONFIG_MEDIA_SUBDRV_AUTOSELECT=y
|
|||
# Miscellaneous helper chips
|
||||
#
|
||||
|
||||
#
|
||||
# Sensors used on soc_camera driver
|
||||
#
|
||||
|
||||
#
|
||||
# soc_camera sensor drivers
|
||||
#
|
||||
# CONFIG_SOC_CAMERA_MT9M001 is not set
|
||||
# CONFIG_SOC_CAMERA_MT9M111 is not set
|
||||
# CONFIG_SOC_CAMERA_MT9T112 is not set
|
||||
# CONFIG_SOC_CAMERA_MT9V022 is not set
|
||||
# CONFIG_SOC_CAMERA_OV5642 is not set
|
||||
# CONFIG_SOC_CAMERA_OV772X is not set
|
||||
# CONFIG_SOC_CAMERA_OV9640 is not set
|
||||
# CONFIG_SOC_CAMERA_OV9740 is not set
|
||||
# CONFIG_SOC_CAMERA_RJ54N1 is not set
|
||||
# CONFIG_SOC_CAMERA_TW9910 is not set
|
||||
|
||||
#
|
||||
# Media SPI Adapters
|
||||
#
|
||||
|
@ -3777,6 +3737,7 @@ CONFIG_DRM_LOAD_EDID_FIRMWARE=y
|
|||
# CONFIG_DRM_DP_CEC is not set
|
||||
CONFIG_DRM_GEM_CMA_HELPER=y
|
||||
CONFIG_DRM_KMS_CMA_HELPER=y
|
||||
CONFIG_DRM_SCHED=m
|
||||
|
||||
#
|
||||
# I2C encoder or helper chips
|
||||
|
@ -3848,9 +3809,9 @@ CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0=m
|
|||
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set
|
||||
# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set
|
||||
# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set
|
||||
|
||||
CONFIG_DRM_PANEL_SITRONIX_ST7701=m
|
||||
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set
|
||||
|
||||
CONFIG_DRM_PANEL_TPO_TPG110=m
|
||||
CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA=m
|
||||
CONFIG_DRM_BRIDGE=y
|
||||
CONFIG_DRM_PANEL_BRIDGE=y
|
||||
|
@ -3882,7 +3843,8 @@ CONFIG_DRM_DW_HDMI=y
|
|||
# CONFIG_DRM_DW_HDMI_I2S_AUDIO is not set
|
||||
# CONFIG_DRM_DW_HDMI_CEC is not set
|
||||
# CONFIG_DRM_STI is not set
|
||||
|
||||
CONFIG_DRM_ETNAVIV=m
|
||||
CONFIG_DRM_ETNAVIV_THERMAL=y
|
||||
# CONFIG_DRM_ARCPGU is not set
|
||||
# CONFIG_DRM_HISI_HIBMC is not set
|
||||
# CONFIG_DRM_MXSFB is not set
|
||||
|
@ -4172,6 +4134,8 @@ CONFIG_SND_SOC_NOKIA_RX51=m
|
|||
CONFIG_SND_SOC_OMAP3_PANDORA=m
|
||||
CONFIG_SND_SOC_OMAP3_TWL4030=m
|
||||
CONFIG_SND_SOC_XILINX_I2S=m
|
||||
CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER=m
|
||||
CONFIG_SND_SOC_XILINX_SPDIF=m
|
||||
# CONFIG_SND_SOC_XTFPGA_I2S is not set
|
||||
# CONFIG_ZX_TDM is not set
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
|
@ -4312,9 +4276,7 @@ CONFIG_SND_SOC_NAU8822=m
|
|||
CONFIG_SND_SOC_TPA6130A2=m
|
||||
CONFIG_SND_SIMPLE_CARD_UTILS=m
|
||||
CONFIG_SND_SIMPLE_CARD=m
|
||||
CONFIG_SND_SIMPLE_SCU_CARD=m
|
||||
# CONFIG_SND_AUDIO_GRAPH_CARD is not set
|
||||
# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set
|
||||
|
||||
#
|
||||
# HID support
|
||||
|
@ -4441,6 +4403,7 @@ CONFIG_USB_OTG=y
|
|||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
# CONFIG_USB_OTG_FSM is not set
|
||||
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set
|
||||
CONFIG_USB_AUTOSUSPEND_DELAY=2
|
||||
# CONFIG_USB_MON is not set
|
||||
# CONFIG_USB_WUSB_CBAF is not set
|
||||
|
||||
|
@ -4968,7 +4931,6 @@ CONFIG_RTC_DRV_CPCAP=m
|
|||
#
|
||||
# HID Sensor RTC drivers
|
||||
#
|
||||
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set
|
||||
CONFIG_DMADEVICES=y
|
||||
# CONFIG_DMADEVICES_DEBUG is not set
|
||||
|
||||
|
@ -5049,7 +5011,6 @@ CONFIG_STAGING=y
|
|||
#
|
||||
# Analog to digital converters
|
||||
#
|
||||
# CONFIG_AD7606 is not set
|
||||
# CONFIG_AD7780 is not set
|
||||
# CONFIG_AD7816 is not set
|
||||
# CONFIG_AD7192 is not set
|
||||
|
@ -5064,7 +5025,6 @@ CONFIG_STAGING=y
|
|||
# Capacitance to digital converters
|
||||
#
|
||||
# CONFIG_AD7150 is not set
|
||||
# CONFIG_AD7152 is not set
|
||||
# CONFIG_AD7746 is not set
|
||||
|
||||
#
|
||||
|
@ -5088,7 +5048,6 @@ CONFIG_STAGING=y
|
|||
#
|
||||
# CONFIG_AD2S1210 is not set
|
||||
# CONFIG_FB_SM750 is not set
|
||||
# CONFIG_FB_XGI is not set
|
||||
|
||||
#
|
||||
# Speakup console speech
|
||||
|
@ -5111,7 +5070,6 @@ CONFIG_STAGING_BOARD=y
|
|||
# CONFIG_KS7010 is not set
|
||||
# CONFIG_GREYBUS is not set
|
||||
# CONFIG_PI433 is not set
|
||||
# CONFIG_MTK_MMC is not set
|
||||
|
||||
#
|
||||
# Gasket devices
|
||||
|
@ -5335,10 +5293,11 @@ CONFIG_AD7124=m
|
|||
# CONFIG_AD7291 is not set
|
||||
# CONFIG_AD7298 is not set
|
||||
# CONFIG_AD7476 is not set
|
||||
|
||||
|
||||
CONFIG_AD7606=m
|
||||
CONFIG_AD7606_IFACE_PARALLEL=m
|
||||
CONFIG_AD7606_IFACE_SPI=m
|
||||
# CONFIG_AD7766 is not set
|
||||
|
||||
CONFIG_AD7768_1=m
|
||||
# CONFIG_AD7791 is not set
|
||||
# CONFIG_AD7793 is not set
|
||||
# CONFIG_AD7887 is not set
|
||||
|
@ -5715,13 +5674,14 @@ CONFIG_RESET_MESON_AUDIO_ARB=m
|
|||
# PHY Subsystem
|
||||
#
|
||||
CONFIG_GENERIC_PHY=y
|
||||
CONFIG_GENERIC_PHY_MIPI_DPHY=y
|
||||
CONFIG_PHY_MESON8B_USB2=y
|
||||
CONFIG_PHY_MESON_GXL_USB2=y
|
||||
CONFIG_PHY_MESON_GXL_USB3=y
|
||||
# CONFIG_BCM_KONA_USB2_PHY is not set
|
||||
CONFIG_PHY_CADENCE_DP=m
|
||||
CONFIG_PHY_CADENCE_DPHY=m
|
||||
CONFIG_PHY_CADENCE_SIERRA=m
|
||||
|
||||
CONFIG_PHY_FSL_IMX8MQ_USB=m
|
||||
# CONFIG_PHY_PXA_28NM_HSIC is not set
|
||||
# CONFIG_PHY_PXA_28NM_USB2 is not set
|
||||
|
@ -5786,8 +5746,6 @@ CONFIG_EXT3_FS_SECURITY=y
|
|||
CONFIG_EXT4_FS=y
|
||||
CONFIG_EXT4_FS_POSIX_ACL=y
|
||||
CONFIG_EXT4_FS_SECURITY=y
|
||||
CONFIG_EXT4_ENCRYPTION=y
|
||||
CONFIG_EXT4_FS_ENCRYPTION=y
|
||||
# CONFIG_EXT4_DEBUG is not set
|
||||
CONFIG_JBD2=y
|
||||
# CONFIG_JBD2_DEBUG is not set
|
||||
|
@ -5814,7 +5772,7 @@ CONFIG_BTRFS_FS_POSIX_ACL=y
|
|||
# CONFIG_F2FS_FS is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
CONFIG_EXPORTFS=y
|
||||
# CONFIG_EXPORTFS_BLOCK_OPS is not set
|
||||
CONFIG_EXPORTFS_BLOCK_OPS=y
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_MANDATORY_FILE_LOCKING=y
|
||||
CONFIG_FS_ENCRYPTION=y
|
||||
|
@ -5892,7 +5850,6 @@ CONFIG_UBIFS_FS_LZO=y
|
|||
CONFIG_UBIFS_FS_ZLIB=y
|
||||
# CONFIG_UBIFS_ATIME_SUPPORT is not set
|
||||
CONFIG_UBIFS_FS_XATTR=y
|
||||
# CONFIG_UBIFS_FS_ENCRYPTION is not set
|
||||
CONFIG_UBIFS_FS_SECURITY=y
|
||||
# CONFIG_UBIFS_FS_AUTHENTICATION is not set
|
||||
# CONFIG_CRAMFS is not set
|
||||
|
@ -6056,7 +6013,7 @@ CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
|
|||
# CONFIG_FORTIFY_SOURCE is not set
|
||||
# CONFIG_STATIC_USERMODEHELPER is not set
|
||||
CONFIG_DEFAULT_SECURITY_DAC=y
|
||||
CONFIG_DEFAULT_SECURITY=""
|
||||
CONFIG_LSM="yama,loadpin,safesetid,integrity"
|
||||
CONFIG_XOR_BLOCKS=y
|
||||
CONFIG_ASYNC_CORE=m
|
||||
CONFIG_ASYNC_MEMCPY=m
|
||||
|
@ -6302,22 +6259,22 @@ CONFIG_HAS_IOMEM=y
|
|||
CONFIG_HAS_IOPORT_MAP=y
|
||||
CONFIG_HAS_DMA=y
|
||||
CONFIG_NEED_DMA_MAP_STATE=y
|
||||
CONFIG_HAVE_GENERIC_DMA_COHERENT=y
|
||||
|
||||
|
||||
CONFIG_DMA_DECLARE_COHERENT=y
|
||||
CONFIG_ARCH_HAS_SETUP_DMA_OPS=y
|
||||
CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y
|
||||
CONFIG_DMA_REMAP=y
|
||||
|
||||
CONFIG_DMA_CMA=y
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#
|
||||
# Default contiguous memory area size:
|
||||
#
|
||||
CONFIG_CMA_SIZE_MBYTES=64
|
||||
CONFIG_CMA_SIZE_SEL_MBYTES=y
|
||||
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
|
||||
# CONFIG_CMA_SIZE_SEL_MIN is not set
|
||||
# CONFIG_CMA_SIZE_SEL_MAX is not set
|
||||
CONFIG_CMA_ALIGNMENT=8
|
||||
# CONFIG_DMA_API_DEBUG is not set
|
||||
CONFIG_SGL_ALLOC=y
|
||||
CONFIG_CPU_RMAP=y
|
||||
CONFIG_DQL=y
|
||||
|
@ -6366,7 +6323,6 @@ CONFIG_FRAME_WARN=1024
|
|||
# CONFIG_STRIP_ASM_SYMS is not set
|
||||
# CONFIG_READABLE_ASM is not set
|
||||
# CONFIG_UNUSED_SYMBOLS is not set
|
||||
|
||||
CONFIG_DEBUG_FS=y
|
||||
# CONFIG_HEADERS_CHECK is not set
|
||||
# CONFIG_DEBUG_SECTION_MISMATCH is not set
|
||||
|
@ -6496,7 +6452,6 @@ CONFIG_PROBE_EVENTS=y
|
|||
# CONFIG_PREEMPTIRQ_DELAY_TEST is not set
|
||||
# CONFIG_TRACE_EVAL_MAP_FILE is not set
|
||||
CONFIG_TRACING_EVENTS_GPIO=y
|
||||
|
||||
CONFIG_RUNTIME_TESTING_MENU=y
|
||||
# CONFIG_LKDTM is not set
|
||||
# CONFIG_TEST_LIST_SORT is not set
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.9.180 Kernel Configuration
|
||||
# Linux/arm64 4.9.182 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_64BIT=y
|
||||
|
@ -2437,7 +2437,6 @@ CONFIG_ATH10K=m
|
|||
# CONFIG_ATH10K_TRACING is not set
|
||||
CONFIG_WCN36XX=m
|
||||
# CONFIG_WCN36XX_DEBUGFS is not set
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_WLAN_VENDOR_ATMEL=y
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||
|
@ -2509,6 +2508,9 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -2421,6 +2421,9 @@ CONFIG_WLCORE=m
|
|||
CONFIG_WLCORE_SPI=m
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.14.120 Kernel Configuration
|
||||
# Linux/arm 4.14.127 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
|
@ -2052,7 +2052,6 @@ CONFIG_ATH10K=m
|
|||
# CONFIG_ATH10K_DEBUGFS is not set
|
||||
CONFIG_WCN36XX=m
|
||||
# CONFIG_WCN36XX_DEBUGFS is not set
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_WLAN_VENDOR_ATMEL=y
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||
|
@ -2126,6 +2125,8 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.1.3 Kernel Configuration
|
||||
# Linux/arm 5.1.15 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -637,6 +637,7 @@ CONFIG_ARCH_MMAP_RND_BITS=8
|
|||
CONFIG_CLONE_BACKWARDS=y
|
||||
CONFIG_OLD_SIGSUSPEND3=y
|
||||
CONFIG_OLD_SIGACTION=y
|
||||
CONFIG_64BIT_TIME=y
|
||||
CONFIG_COMPAT_32BIT_TIME=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y
|
||||
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y
|
||||
|
@ -2075,7 +2076,6 @@ CONFIG_ATH10K_CE=y
|
|||
# CONFIG_ATH10K_DEBUGFS is not set
|
||||
CONFIG_WCN36XX=m
|
||||
# CONFIG_WCN36XX_DEBUGFS is not set
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_WLAN_VENDOR_ATMEL=y
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||
|
@ -2158,6 +2158,8 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.14.120 Kernel Configuration
|
||||
# Linux/arm 4.14.127 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
|
@ -2051,7 +2051,6 @@ CONFIG_ATH10K=m
|
|||
# CONFIG_ATH10K_DEBUGFS is not set
|
||||
CONFIG_WCN36XX=m
|
||||
# CONFIG_WCN36XX_DEBUGFS is not set
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_WLAN_VENDOR_ATMEL=y
|
||||
CONFIG_AT76C50X_USB=m
|
||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||
|
@ -2125,6 +2124,8 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -469,6 +469,8 @@ CONFIG_XFRM_IPCOMP=y
|
|||
CONFIG_NET_KEY=y
|
||||
# CONFIG_NET_KEY_MIGRATE is not set
|
||||
CONFIG_INET=y
|
||||
CONFIG_WIREGUARD=m
|
||||
# CONFIG_WIREGUARD_DEBUG is not set
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
CONFIG_IP_FIB_TRIE_STATS=y
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1922,6 +1922,8 @@ CONFIG_MVL88W8977=m
|
|||
#
|
||||
# CONFIG_SSV6051 is not set
|
||||
# CONFIG_WL_TI is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_ZD1211RW=m
|
||||
# CONFIG_ZD1211RW_DEBUG is not set
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.1.5 Kernel Configuration
|
||||
# Linux/arm 5.1.12 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -2187,6 +2187,9 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.19.47 Kernel Configuration
|
||||
# Linux/arm 4.19.53 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -9,6 +9,7 @@
|
|||
CONFIG_CC_IS_GCC=y
|
||||
CONFIG_GCC_VERSION=70401
|
||||
CONFIG_CLANG_VERSION=0
|
||||
CONFIG_CC_HAS_ASM_GOTO=y
|
||||
CONFIG_IRQ_WORK=y
|
||||
CONFIG_BUILDTIME_EXTABLE_SORT=y
|
||||
|
||||
|
@ -2221,6 +2222,7 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
CONFIG_USB_ZD1201=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.4.180 Kernel Configuration
|
||||
# Linux/arm64 4.4.182 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_64BIT=y
|
||||
|
@ -2256,6 +2256,7 @@ CONFIG_MVL88W8977=m
|
|||
#
|
||||
# CONFIG_SSV6051 is not set
|
||||
# CONFIG_WL_TI is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_ZD1211RW=m
|
||||
# CONFIG_ZD1211RW_DEBUG is not set
|
||||
|
|
|
@ -2480,6 +2480,9 @@ CONFIG_WLCORE=m
|
|||
# CONFIG_WLCORE_SPI is not set
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
CONFIG_WILINK_PLATFORM_DATA=y
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
# CONFIG_USB_ZD1201 is not set
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.14.123 Kernel Configuration
|
||||
# Linux/arm64 4.14.128 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM64=y
|
||||
CONFIG_64BIT=y
|
||||
|
@ -1926,7 +1926,6 @@ CONFIG_ATH10K_USB=m
|
|||
# CONFIG_ATH10K_DEBUGFS is not set
|
||||
# CONFIG_ATH10K_TRACING is not set
|
||||
# CONFIG_WCN36XX is not set
|
||||
CONFIG_RTL8188EU=m
|
||||
# CONFIG_WLAN_VENDOR_ATMEL is not set
|
||||
# CONFIG_BCMDHD is not set
|
||||
CONFIG_WLAN_VENDOR_BROADCOM=y
|
||||
|
@ -1978,6 +1977,8 @@ CONFIG_RTL8XXXU_UNTESTED=y
|
|||
# CONFIG_WLAN_VENDOR_RSI is not set
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
# CONFIG_WLAN_VENDOR_ZYDAS is not set
|
||||
CONFIG_WLAN_VENDOR_QUANTENNA=y
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 5.1.6 Kernel Configuration
|
||||
# Linux/arm 5.1.7 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -2377,6 +2377,8 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_XRADIO=m
|
||||
CONFIG_XRADIO_NON_POWER_OF_TWO_BLOCKSIZES=y
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.19.49 Kernel Configuration
|
||||
# Linux/arm 4.19.53 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -2394,6 +2394,8 @@ CONFIG_WLAN_VENDOR_TI=y
|
|||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
CONFIG_WLAN_VENDOR_XRADIO=m
|
||||
CONFIG_XRADIO_NON_POWER_OF_TWO_BLOCKSIZES=y
|
||||
|
@ -3131,7 +3133,6 @@ CONFIG_CLOCK_THERMAL=y
|
|||
#
|
||||
# ACPI INT340X thermal drivers
|
||||
#
|
||||
CONFIG_SUN50I_H6_THS=m
|
||||
CONFIG_SUN8I_THS=m
|
||||
CONFIG_GENERIC_ADC_THERMAL=m
|
||||
CONFIG_WATCHDOG=y
|
||||
|
|
|
@ -2219,6 +2219,8 @@ CONFIG_RTL8723CS=m
|
|||
# CONFIG_WLAN_VENDOR_RSI is not set
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
# CONFIG_WLAN_VENDOR_XRADIO is not set
|
||||
# CONFIG_WLAN_VENDOR_ZYDAS is not set
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm64 4.19.49 Kernel Configuration
|
||||
# Linux/arm64 4.19.53 Kernel Configuration
|
||||
#
|
||||
|
||||
#
|
||||
|
@ -2298,6 +2298,8 @@ CONFIG_RTL8723CS=m
|
|||
# CONFIG_WLAN_VENDOR_RSI is not set
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8821AU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
# CONFIG_WLAN_VENDOR_XRADIO is not set
|
||||
# CONFIG_WLAN_VENDOR_ZYDAS is not set
|
||||
|
@ -3069,7 +3071,6 @@ CONFIG_THERMAL_EMULATION=y
|
|||
#
|
||||
# ACPI INT340X thermal drivers
|
||||
#
|
||||
CONFIG_SUN50I_H6_THS=m
|
||||
CONFIG_SUN8I_THS=m
|
||||
# CONFIG_QCOM_SPMI_TEMP_ALARM is not set
|
||||
CONFIG_GENERIC_ADC_THERMAL=m
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.4.162 Kernel Configuration
|
||||
# Linux/arm 4.4.167 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
|
@ -1202,6 +1202,7 @@ CONFIG_BT_HCIUART=m
|
|||
# CONFIG_BT_HCIUART_BCSP is not set
|
||||
# CONFIG_BT_HCIUART_ATH3K is not set
|
||||
# CONFIG_BT_HCIUART_LL is not set
|
||||
# CONFIG_BT_HCIUART_3WIRE is not set
|
||||
# CONFIG_BT_HCIUART_INTEL is not set
|
||||
# CONFIG_BT_HCIUART_BCM is not set
|
||||
# CONFIG_BT_HCIUART_QCA is not set
|
||||
|
@ -1791,6 +1792,8 @@ CONFIG_RTL8192C_COMMON=m
|
|||
CONFIG_RTL8XXXU=m
|
||||
# CONFIG_RTL8XXXU_UNTESTED is not set
|
||||
# CONFIG_WL_TI is not set
|
||||
CONFIG_RTL8822BU=m
|
||||
CONFIG_RTL8188EU=m
|
||||
CONFIG_RTL8812AU=m
|
||||
# CONFIG_ZD1211RW is not set
|
||||
# CONFIG_MWIFIEX is not set
|
||||
|
@ -2105,6 +2108,7 @@ CONFIG_PPS=y
|
|||
#
|
||||
# CONFIG_PPS_CLIENT_KTIMER is not set
|
||||
CONFIG_PPS_CLIENT_LDISC=m
|
||||
CONFIG_PPS_CLIENT_PARPORT=m
|
||||
CONFIG_PPS_CLIENT_GPIO=m
|
||||
|
||||
#
|
||||
|
|
|
@ -17,7 +17,7 @@ case $BRANCH in
|
|||
|
||||
next)
|
||||
KERNELSOURCE=$MAINLINE_KERNEL_SOURCE
|
||||
KERNELBRANCH='branch:linux-4.19.y'
|
||||
KERNELBRANCH='branch:linux-5.1.y'
|
||||
KERNELDIR=$MAINLINE_KERNEL_DIR
|
||||
KERNEL_USE_GCC='> 7.0'
|
||||
;;
|
||||
|
|
|
@ -49,6 +49,14 @@ case $BRANCH in
|
|||
KERNEL_USE_GCC='> 7.0'
|
||||
;;
|
||||
|
||||
dev)
|
||||
KERNELSOURCE=$MAINLINE_KERNEL_SOURCE
|
||||
KERNELBRANCH='branch:linux-5.1.y'
|
||||
KERNELDIR=$MAINLINE_KERNEL_DIR
|
||||
|
||||
KERNEL_USE_GCC='> 7.0'
|
||||
;;
|
||||
|
||||
esac
|
||||
|
||||
CPUMIN=200000
|
||||
|
|
|
@ -79,6 +79,7 @@ uboot_custom_postprocess()
|
|||
family_tweaks()
|
||||
{
|
||||
if [[ $BOARD == tinkerboard ]]; then
|
||||
chroot $SDCARD /bin/bash -c "apt-get -y -qq install bluetooth bluez bluez-tools"
|
||||
chroot $SDCARD /bin/bash -c "systemctl --no-reload enable tinker-bluetooth.service >/dev/null 2>&1"
|
||||
sed -i -e "/#load-module module-alsa-sink/r $SRC/packages/bsp/rockchip/pulseaudio.txt" $SDCARD/etc/pulse/default.pa >/dev/null 2>&1
|
||||
fi
|
||||
|
|
|
@ -45,7 +45,7 @@ fi
|
|||
case $BRANCH in
|
||||
default)
|
||||
KERNELSOURCE='https://github.com/ayufan-rock64/linux-kernel'
|
||||
KERNELBRANCH='tag:4.4.167-1202-rockchip-ayufan'
|
||||
KERNELBRANCH='tag:4.4.167-1213-rockchip-ayufan'
|
||||
KERNELDIR='linux-rockchip64'
|
||||
KERNEL_USE_GCC='> 7.0'
|
||||
;;
|
||||
|
|
178
lib/compilation-prepare.sh
Normal file
178
lib/compilation-prepare.sh
Normal file
|
@ -0,0 +1,178 @@
|
|||
# Copyright (c) 2015 Igor Pecovnik, igor.pecovnik@gma**.com
|
||||
#
|
||||
# This file is licensed under the terms of the GNU General Public
|
||||
# License version 2. This program is licensed "as is" without any
|
||||
# warranty of any kind, whether express or implied.
|
||||
|
||||
# This file is a part of the Armbian build script
|
||||
# https://github.com/armbian/build/
|
||||
|
||||
# Functions:
|
||||
# compilation_prepare
|
||||
|
||||
compilation_prepare()
|
||||
{
|
||||
|
||||
# AUFS - advanced multi layered unification filesystem for Kernel 5.1.y
|
||||
#
|
||||
# Older versions have AUFS support with a patch
|
||||
|
||||
if linux-version compare $version ge 5.1 && linux-version compare $version le 5.2 && [ "$AUFS" == yes ]; then
|
||||
|
||||
# attach to specifics tag or branch
|
||||
local aufsver="branch:aufs5.1"
|
||||
|
||||
display_alert "Adding" "AUFS 5.1" "info"
|
||||
|
||||
fetch_from_repo "https://github.com/sfjro/aufs5-standalone" "aufs5" "branch:${aufsver}" "yes"
|
||||
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
|
||||
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-kbuild.patch" "applying"
|
||||
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-base.patch" "applying"
|
||||
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-mmap.patch" "applying"
|
||||
process_patch_file "${SRC}/cache/sources/aufs5/${aufsver#*:}/aufs5-standalone.patch" "applying"
|
||||
cp -R ${SRC}/cache/sources/aufs5/${aufsver#*:}/{Documentation,fs} .
|
||||
cp ${SRC}/cache/sources/aufs5/${aufsver#*:}/include/uapi/linux/aufs_type.h include/uapi/linux/
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# WireGuard - fast, modern, secure VPN tunnel
|
||||
|
||||
if linux-version compare $version ge 3.10 && [ "${WIREGUARD}" == yes ]; then
|
||||
|
||||
# attach to specifics tag or branch
|
||||
#local wirever="branch:master"
|
||||
local wirever="tag:0.0.20190601"
|
||||
|
||||
display_alert "Adding" "WireGuard ${wirever} " "info"
|
||||
|
||||
fetch_from_repo "https://git.zx2c4.com/WireGuard" "wireguard" "${wirever}" "yes"
|
||||
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
|
||||
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/wireguard
|
||||
cp -R ${SRC}/cache/sources/wireguard/${wirever#*:}/src/ ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/wireguard
|
||||
sed -i "/^obj-\\\$(CONFIG_NETFILTER).*+=/a obj-\$(CONFIG_WIREGUARD) += wireguard/" \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile
|
||||
sed -i "/^if INET\$/a source \"net/wireguard/Kconfig\"" \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig
|
||||
# remove duplicates
|
||||
[[ $(cat ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile | grep wireguard | wc -l) -gt 1 ]] && \
|
||||
sed -i '0,/wireguard/{/wireguard/d;}' ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Makefile
|
||||
[[ $(cat ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig | grep wireguard | wc -l) -gt 1 ]] && \
|
||||
sed -i '0,/wireguard/{/wireguard/d;}' ${SRC}/cache/sources/${LINUXSOURCEDIR}/net/Kconfig
|
||||
# headers workaround
|
||||
display_alert "Patching WireGuard" "Applying workaround for headers compilation" "info"
|
||||
sed -i '/mkdir -p "$destdir"/a mkdir -p "$destdir"/net/wireguard; \
|
||||
touch "$destdir"/net/wireguard/{Kconfig,Makefile} # workaround for Wireguard' \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/scripts/package/builddeb
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Wireless drivers for Realtek 8811, 8812, 8814 and 8821 chipsets
|
||||
|
||||
if linux-version compare $version ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
|
||||
|
||||
# attach to specifics tag or branch
|
||||
local rtl8812auver="branch:v5.2.20"
|
||||
|
||||
display_alert "Adding" "Wireless drivers for Realtek 8811, 8812, 8814 and 8821 chipsets ${rtl8812auver}" "info"
|
||||
|
||||
fetch_from_repo "https://github.com/aircrack-ng/rtl8812au" "rtl8812au" "${rtl8812auver}" "yes"
|
||||
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
|
||||
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au
|
||||
mkdir -p ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/
|
||||
cp -R ${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/{core,hal,include,os_dep,platform} \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au
|
||||
|
||||
# Makefile
|
||||
cp ${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/Makefile \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile
|
||||
cp ${SRC}/cache/sources/rtl8812au/${rtl8812auver#*:}/Kconfig \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Kconfig
|
||||
|
||||
# Adjust path
|
||||
sed -i 's/include $(src)\/hal\/phydm\/phydm.mk/include $(TopDIR)\/drivers\/net\/wireless\/rtl8812au\/hal\/phydm\/phydm.mk/' \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile
|
||||
sed -i 's/include $(TopDIR)\/hal\/phydm\/phydm.mk/include $(TopDIR)\/drivers\/net\/wireless\/rtl8812au\/hal\/phydm\/phydm.mk/' \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8812au/Makefile
|
||||
|
||||
# Add to section Makefile
|
||||
echo "obj-\$(CONFIG_RTL8812AU) += rtl8812au/" >> $SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile
|
||||
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl8812au\/Kconfig"' \
|
||||
$SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Wireless drivers for Realtek 8188EU 8188EUS and 8188ETV chipsets
|
||||
|
||||
if linux-version compare $version ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
|
||||
|
||||
# attach to specifics tag or branch
|
||||
local rtl8811euver="branch:v5.3.9"
|
||||
|
||||
display_alert "Adding" "Wireless drivers for Realtek 8188EU 8188EUS and 8188ETV chipsets ${rtl8811euver}" "info"
|
||||
|
||||
fetch_from_repo "https://github.com/aircrack-ng/rtl8188eus" "rtl8188eu" "${rtl8811euver}" "yes"
|
||||
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
|
||||
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu
|
||||
mkdir -p ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/
|
||||
cp -R ${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/{core,hal,include,os_dep,platform} \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu
|
||||
|
||||
# Makefile
|
||||
cp ${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/Makefile \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/Makefile
|
||||
cp ${SRC}/cache/sources/rtl8188eu/${rtl8811euver#*:}/Kconfig \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl8188eu/Kconfig
|
||||
|
||||
# Add to section Makefile
|
||||
echo "obj-\$(CONFIG_RTL8188EU) += rtl8188eu/" >> $SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile
|
||||
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl8188eu\/Kconfig"' \
|
||||
$SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig
|
||||
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
# Wireless drivers for Realtek 88x2bu chipsets
|
||||
|
||||
if linux-version compare $version ge 3.14 && [ "$EXTRAWIFI" == yes ]; then
|
||||
|
||||
# attach to specifics tag or branch
|
||||
local rtl88x2buver="branch:master"
|
||||
|
||||
display_alert "Adding" "Wireless drivers for Realtek 88x2bu chipsets ${rtl88x2buver}" "info"
|
||||
|
||||
fetch_from_repo "https://github.com/cilynx/rtl88x2BU_WiFi_linux_v5.3.1_27678.20180430_COEX20180427-5959" "rtl88x2bu" "${rtl88x2buver}" "yes"
|
||||
cd ${SRC}/cache/sources/${LINUXSOURCEDIR}
|
||||
rm -rf ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu
|
||||
mkdir -p ${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/
|
||||
cp -R ${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/{core,hal,include,os_dep,platform,rtl8822b.mk} \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu
|
||||
|
||||
# Makefile
|
||||
cp ${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/Makefile \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Makefile
|
||||
cp ${SRC}/cache/sources/rtl88x2bu/${rtl88x2buver#*:}/Kconfig \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Kconfig
|
||||
|
||||
# Adjust path
|
||||
sed -i 's/include $(src)\/rtl8822b.mk /include $(TopDIR)\/drivers\/net\/wireless\/rtl88x2bu\/rtl8822b.mk/' \
|
||||
${SRC}/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/rtl88x2bu/Makefile
|
||||
|
||||
# Add to section Makefile
|
||||
echo "obj-\$(CONFIG_RTL8822BU) += rtl88x2bu/" >> $SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Makefile
|
||||
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl88x2bu\/Kconfig"' \
|
||||
$SRC/cache/sources/${LINUXSOURCEDIR}/drivers/net/wireless/Kconfig
|
||||
|
||||
fi
|
||||
|
||||
}
|
|
@ -279,44 +279,8 @@ compile_kernel()
|
|||
# read kernel version
|
||||
local version=$(grab_version "$kerneldir")
|
||||
|
||||
# add WireGuard
|
||||
if linux-version compare $version ge 3.14 && [ "$WIREGUARD" == yes ]; then
|
||||
display_alert "Adding" "WireGuard" "info"
|
||||
rm -rf $SRC/cache/sources/$LINUXSOURCEDIR/net/wireguard
|
||||
cp -R $SRC/cache/sources/wireguard/src/ $SRC/cache/sources/$LINUXSOURCEDIR/net/wireguard
|
||||
sed -i "/^obj-\\\$(CONFIG_NETFILTER).*+=/a obj-\$(CONFIG_WIREGUARD) += wireguard/" "$SRC/cache/sources/$LINUXSOURCEDIR/net/Makefile"
|
||||
sed -i "/^if INET\$/a source \"net/wireguard/Kconfig\"" "$SRC/cache/sources/$LINUXSOURCEDIR/net/Kconfig"
|
||||
# remove duplicates
|
||||
[[ $(cat $SRC/cache/sources/$LINUXSOURCEDIR/net/Makefile | grep wireguard | wc -l) -gt 1 ]] && \
|
||||
sed -i '0,/wireguard/{/wireguard/d;}' $SRC/cache/sources/$LINUXSOURCEDIR/net/Makefile
|
||||
[[ $(cat $SRC/cache/sources/$LINUXSOURCEDIR/net/Kconfig | grep wireguard | wc -l) -gt 1 ]] && \
|
||||
sed -i '0,/wireguard/{/wireguard/d;}' $SRC/cache/sources/$LINUXSOURCEDIR/net/Kconfig
|
||||
# headers workaround
|
||||
display_alert "Patching WireGuard" "Applying workaround for headers compilation" "info"
|
||||
sed -i '/mkdir -p "$destdir"/a mkdir -p "$destdir"/net/wireguard; touch "$destdir"/net/wireguard/{Kconfig,Makefile} # workaround for Wireguard' $SRC/cache/sources/$LINUXSOURCEDIR/scripts/package/builddeb
|
||||
fi
|
||||
|
||||
# add drivers for Realtek 8811, 8812, 8814 and 8821 chipsets
|
||||
if linux-version compare $version ge 3.14 && [ "$RTL8812AU" == yes ]; then
|
||||
display_alert "Adding" "Wireless drivers for Realtek 8811, 8812, 8814 and 8821 chipsets" "info"
|
||||
rm -rf $SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/rtl8812au
|
||||
mkdir -p $SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/rtl8812au/
|
||||
cp -R $SRC/cache/sources/rtl8812au/{core,hal,include,os_dep,platform,modules.order} $SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/rtl8812au
|
||||
|
||||
# Makefile
|
||||
cp $SRC/cache/sources/rtl8812au/Makefile $SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/rtl8812au/Makefile
|
||||
cp $SRC/cache/sources/rtl8812au/Kconfig $SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/rtl8812au/Kconfig
|
||||
|
||||
# Adjust path
|
||||
sed -i 's/include $(TopDIR)\/hal\/phydm\/phydm.mk/include $(TopDIR)\/drivers\/net\/wireless\/rtl8812au\/hal\/phydm\/phydm.mk/' \
|
||||
$SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/rtl8812au/Makefile
|
||||
|
||||
# Add to section Makefile
|
||||
sed -i '/obj-$(CONFIG_.*ATMEL).*/a obj-$(CONFIG_RTL8812AU) += rtl8812au/' \
|
||||
$SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/Makefile
|
||||
sed -i '/source "drivers\/net\/wireless\/ti\/Kconfig"/a source "drivers\/net\/wireless\/rtl8812au\/Kconfig"' \
|
||||
$SRC/cache/sources/$LINUXSOURCEDIR/drivers/net/wireless/Kconfig
|
||||
fi
|
||||
# build 3rd party drivers
|
||||
compilation_prepare
|
||||
|
||||
# create linux-source package - with already patched sources
|
||||
local sources_pkg_dir=$SRC/.tmp/${CHOSEN_KSRC}_${REVISION}_all
|
||||
|
|
|
@ -70,7 +70,7 @@ CAN_BUILD_STRETCH=yes
|
|||
[[ -z $CRYPTROOT_SSH_UNLOCK ]] && CRYPTROOT_SSH_UNLOCK=yes
|
||||
[[ -z $CRYPTROOT_SSH_UNLOCK_PORT ]] && CRYPTROOT_SSH_UNLOCK_PORT=2022
|
||||
[[ -z $WIREGUARD ]] && WIREGUARD="no"
|
||||
[[ -z $RTL8812AU ]] && RTL8812AU="yes"
|
||||
[[ -z $EXTRAWIFI ]] && EXTRAWIFI="yes"
|
||||
|
||||
# single ext4 partition is the default and preferred configuration
|
||||
#BOOTFS_TYPE=''
|
||||
|
|
|
@ -99,9 +99,10 @@ debootstrap_ng()
|
|||
create_rootfs_cache()
|
||||
{
|
||||
local packages_hash=$(get_package_list_hash)
|
||||
local cache_name=${RELEASE}-ng-$ARCH.$packages_hash.tar.lz4
|
||||
local cache_type=$(if [[ ${BUILD_DESKTOP} == yes ]]; then echo "desktop"; else echo "cli";fi)
|
||||
local cache_name=${RELEASE}-${cache_type}-${ARCH}.$packages_hash.tar.lz4
|
||||
local cache_fname=${SRC}/cache/rootfs/${cache_name}
|
||||
local display_name=${RELEASE}-ng-$ARCH.${packages_hash:0:3}...${packages_hash:29}.tar.lz4
|
||||
local display_name=${RELEASE}-${cache_type}-${ARCH}.${packages_hash:0:3}...${packages_hash:29}.tar.lz4
|
||||
|
||||
display_alert "Checking for local cache" "$display_name" "info"
|
||||
if [[ ! -f $cache_fname && "$ROOT_FS_CREATE_ONLY" != "force" ]]; then
|
|
@ -45,8 +45,8 @@ backtitle="Armbian building script, http://www.armbian.com | Author: Igor Pecovn
|
|||
[[ -z $FORCE_CHECKOUT ]] && FORCE_CHECKOUT=yes
|
||||
|
||||
# Load libraries
|
||||
# shellcheck source=debootstrap-ng.sh
|
||||
source "${SRC}"/lib/debootstrap-ng.sh # system specific install
|
||||
# shellcheck source=debootstrap.sh
|
||||
source "${SRC}"/lib/debootstrap.sh # system specific install
|
||||
# shellcheck source=image-helpers.sh
|
||||
source "${SRC}"/lib/image-helpers.sh # helpers for OS image building
|
||||
# shellcheck source=distributions.sh
|
||||
|
@ -55,6 +55,8 @@ source "${SRC}"/lib/distributions.sh # system specific install
|
|||
source "${SRC}"/lib/desktop.sh # desktop specific install
|
||||
# shellcheck source=compilation.sh
|
||||
source "${SRC}"/lib/compilation.sh # patching and compilation of kernel, uboot, ATF
|
||||
# shellcheck source=compilation-prepare.sh
|
||||
source "${SRC}"/lib/compilation-prepare.sh # kernel plugins - 3rd party drivers that are not upstreamed. Like WG, AUFS, various Wifi
|
||||
# shellcheck source=makeboarddeb.sh
|
||||
source "${SRC}"/lib/makeboarddeb.sh # create board support package
|
||||
# shellcheck source=general.sh
|
||||
|
@ -305,8 +307,6 @@ if [[ $IGNORE_UPDATES != yes ]]; then
|
|||
fetch_from_repo "https://github.com/MarvellEmbeddedProcessors/mv-ddr-marvell.git" "marvell-ddr" "branch:mv_ddr-armada-18.12"
|
||||
fetch_from_repo "https://github.com/MarvellEmbeddedProcessors/binaries-marvell" "marvell-binaries" "branch:binaries-marvell-armada-18.12"
|
||||
fetch_from_repo "https://github.com/armbian/odroidc2-blobs" "odroidc2-blobs" "branch:master"
|
||||
fetch_from_repo "https://git.zx2c4.com/WireGuard" "wireguard" "branch:master"
|
||||
fetch_from_repo "https://github.com/aircrack-ng/rtl8812au" "rtl8812au" "branch:v5.2.20"
|
||||
fetch_from_repo "https://github.com/armbian/testings" "testing-reports" "branch:master"
|
||||
fi
|
||||
|
||||
|
|
|
@ -1,171 +0,0 @@
|
|||
From d04dea80f1c9c2a1e036cc18a791041ce9da0925 Mon Sep 17 00:00:00 2001
|
||||
From: jahutchi <jahutchinson99@googlemail.com>
|
||||
Date: Fri, 11 Jan 2019 13:35:00 +0000
|
||||
Subject: [PATCH] media: m88ds3103: serialize reset messages in m88ds3103_set_frontend
|
||||
|
||||
Ref: https://bugzilla.kernel.org/show_bug.cgi?id=199323
|
||||
|
||||
Users are experiencing problems with the DVBSky S960/S960C USB devices
|
||||
since the following commit:
|
||||
|
||||
9d659ae: ("locking/mutex: Add lock handoff to avoid starvation")
|
||||
|
||||
The device malfunctions after running for an indeterminable period of
|
||||
time, and the problem can only be cleared by rebooting the machine.
|
||||
|
||||
It is possible to encourage the problem to surface by blocking the
|
||||
signal to the LNB.
|
||||
|
||||
Further debugging reveals the cause of the problem.
|
||||
|
||||
In the following capture:
|
||||
- thread #1325 is running m88ds3103_set_frontend
|
||||
- thread #42 is running ts2020_stat_work
|
||||
|
||||
a> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 80
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 08
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 68 3f
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 08 ff
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 3d
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
|
||||
b> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 00
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 21
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 66
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 60 02 10 0b
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
|
||||
Two i2c messages are sent to perform a reset in m88ds3103_set_frontend:
|
||||
|
||||
a. 0x07, 0x80
|
||||
b. 0x07, 0x00
|
||||
|
||||
However, as shown in the capture, the regmap mutex is being handed over
|
||||
to another thread (ts2020_stat_work) in between these two messages.
|
||||
|
||||
From here, the device responds to every i2c message with an 07 message,
|
||||
and will only return to normal operation following a power cycle.
|
||||
|
||||
Use regmap_multi_reg_write to group the two reset messages, ensuring
|
||||
both are processed before the regmap mutex is unlocked.
|
||||
---
|
||||
drivers/media/dvb-frontends/m88ds3103.c | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c
|
||||
index dffd2d4bf..e495a26e6 100644
|
||||
--- a/drivers/media/dvb-frontends/m88ds3103.c
|
||||
+++ b/drivers/media/dvb-frontends/m88ds3103.c
|
||||
@@ -309,6 +309,7 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe)
|
||||
u16 u16tmp;
|
||||
u32 tuner_frequency_khz, target_mclk;
|
||||
s32 s32tmp;
|
||||
+ static const struct reg_sequence reset_buf[] = {{0x07, 0x80}, {0x07, 0x00}};
|
||||
|
||||
dev_dbg(&client->dev,
|
||||
"delivery_system=%d modulation=%d frequency=%u symbol_rate=%d inversion=%d pilot=%d rolloff=%d\n",
|
||||
@@ -321,11 +322,7 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe)
|
||||
}
|
||||
|
||||
/* reset */
|
||||
- ret = regmap_write(dev->regmap, 0x07, 0x80);
|
||||
- if (ret)
|
||||
- goto err;
|
||||
-
|
||||
- ret = regmap_write(dev->regmap, 0x07, 0x00);
|
||||
+ ret = regmap_multi_reg_write(dev->regmap, reset_buf, 2);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
From 398be6861aeb95001252a2371ff4c06047dfa276 Mon Sep 17 00:00:00 2001
|
||||
From: James Hutchinson <jahutchinson99@googlemail.com>
|
||||
Date: Fri, 12 Oct 2018 10:57:34 +0100
|
||||
Subject: [PATCH] media: dvbsky: use a single mutex and state buffers for all R/W ops
|
||||
|
||||
See: https://bugzilla.kernel.org/show_bug.cgi?id=199323
|
||||
|
||||
This builds on the previous attempt to serialize all R/W ops, which caused bad effects for several users:
|
||||
media: dvbsky: use just one mutex for serializing device R/W ops
|
||||
|
||||
Mutex locking and timeout issues have been reported by several users, on various kernel versions. With the issue seemingly more prevalent on kernel 4.10 and above following changes to the mutex/locking code.
|
||||
|
||||
Debug tracing shows the device malfunctioning shortly after receiving an extra {10} message in-between the {37 00 00}, {36 03 00} message pair.
|
||||
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: >>> 37 00 00
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: >>> 10
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: <<< ff ff
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: >>> 36 03 00
|
||||
...
|
||||
m88ds3103:m88ds3103_diseqc_send_master_cmd: m88ds3103 4-0068: diseqc tx timeout
|
||||
m88ds3103:m88ds3103_diseqc_send_master_cmd: m88ds3103 4-0068: failed=-110
|
||||
|
||||
Resolve this by using the single usb_mutex as attempted previously, this time using the obuf state buffer.
|
||||
|
||||
Also simplify things a little by using dvb_usbv2_generic_write_locked rather than dvb_usbv2_generic_rw_locked.
|
||||
---
|
||||
drivers/media/usb/dvb-usb-v2/dvbsky.c | 17 ++++++++---------
|
||||
1 file changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c
|
||||
index 02dbc6c..8de4a86 100644
|
||||
--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c
|
||||
+++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c
|
||||
@@ -35,7 +35,6 @@ MODULE_PARM_DESC(disable_rc, "Disable inbuilt IR receiver.");
|
||||
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
|
||||
|
||||
struct dvbsky_state {
|
||||
- struct mutex stream_mutex;
|
||||
u8 ibuf[DVBSKY_BUF_LEN];
|
||||
u8 obuf[DVBSKY_BUF_LEN];
|
||||
u8 last_lock;
|
||||
@@ -74,16 +73,18 @@ static int dvbsky_stream_ctrl(struct dvb_usb_device *d, u8 onoff)
|
||||
{
|
||||
struct dvbsky_state *state = d_to_priv(d);
|
||||
int ret;
|
||||
- u8 obuf_pre[3] = { 0x37, 0, 0 };
|
||||
- u8 obuf_post[3] = { 0x36, 3, 0 };
|
||||
+ static u8 obuf_pre[3] = { 0x37, 0, 0 };
|
||||
+ static u8 obuf_post[3] = { 0x36, 3, 0 };
|
||||
|
||||
- mutex_lock(&state->stream_mutex);
|
||||
- ret = dvbsky_usb_generic_rw(d, obuf_pre, 3, NULL, 0);
|
||||
+ mutex_lock(&d->usb_mutex);
|
||||
+ memcpy(state->obuf, obuf_pre, 3);
|
||||
+ ret = dvb_usbv2_generic_write_locked(d, state->obuf, 3);
|
||||
if (!ret && onoff) {
|
||||
msleep(20);
|
||||
- ret = dvbsky_usb_generic_rw(d, obuf_post, 3, NULL, 0);
|
||||
+ memcpy(state->obuf, obuf_post, 3);
|
||||
+ ret = dvb_usbv2_generic_write_locked(d, state->obuf, 3);
|
||||
}
|
||||
- mutex_unlock(&state->stream_mutex);
|
||||
+ mutex_unlock(&d->usb_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -689,8 +690,6 @@ static int dvbsky_init(struct dvb_usb_device *d)
|
||||
if (ret)
|
||||
return ret;
|
||||
*/
|
||||
- mutex_init(&state->stream_mutex);
|
||||
-
|
||||
state->last_lock = 0;
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.11.0
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -32,6 +32,7 @@ config WIRELESS_WDS
|
||||
|
||||
source "drivers/net/wireless/admtek/Kconfig"
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/atmel/Kconfig"
|
||||
source "drivers/net/wireless/broadcom/Kconfig"
|
||||
source "drivers/net/wireless/cisco/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
|
||||
obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/
|
||||
obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/
|
File diff suppressed because it is too large
Load diff
|
@ -1,14 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
|
||||
index 62985f2..9413c1c
|
||||
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
|
||||
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/feature.c
|
||||
@@ -157,8 +157,7 @@ void brcmf_feat_attach(struct brcmf_pub *drvr)
|
||||
}
|
||||
}
|
||||
/* MBSS does not work for 43362 */
|
||||
- if (drvr->bus_if->chip == BRCM_CC_43362_CHIP_ID)
|
||||
- ifp->drvr->feat_flags &= ~BIT(BRCMF_FEAT_MBSS);
|
||||
+ ifp->drvr->feat_flags &= ~BIT(BRCMF_FEAT_MBSS);
|
||||
brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_RSDB, "rsdb_mode");
|
||||
brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_TDLS, "tdls_enable");
|
||||
brcmf_feat_iovar_int_get(ifp, BRCMF_FEAT_MFP, "mfp");
|
File diff suppressed because it is too large
Load diff
|
@ -216,6 +216,6 @@ index f839ecd9..cd276162 100644
|
|||
boot := arch/arm64/boot
|
||||
-KBUILD_IMAGE := $(boot)/Image.gz
|
||||
+KBUILD_IMAGE := $(boot)/Image
|
||||
KBUILD_DTBS := dtbs
|
||||
|
||||
all: Image.gz $(KBUILD_DTBS)
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -32,6 +32,7 @@ config WIRELESS_WDS
|
||||
|
||||
source "drivers/net/wireless/admtek/Kconfig"
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/atmel/Kconfig"
|
||||
source "drivers/net/wireless/broadcom/Kconfig"
|
||||
source "drivers/net/wireless/cisco/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
|
||||
obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/
|
||||
obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/
|
File diff suppressed because it is too large
Load diff
|
@ -163,6 +163,71 @@ index 554d1da97743..21f4a9fe82fa 100644
|
|||
#endif
|
||||
2: lw t2,(t1)
|
||||
nop
|
||||
diff --git a/arch/mips/include/asm/fpu_emulator.h b/arch/mips/include/asm/fpu_emulator.h
|
||||
index 2f021cdfba4f..742223716fc8 100644
|
||||
--- a/arch/mips/include/asm/fpu_emulator.h
|
||||
+++ b/arch/mips/include/asm/fpu_emulator.h
|
||||
@@ -66,6 +66,8 @@ extern int do_dsemulret(struct pt_regs *xcp);
|
||||
extern int fpu_emulator_cop1Handler(struct pt_regs *xcp,
|
||||
struct mips_fpu_struct *ctx, int has_fpu,
|
||||
void *__user *fault_addr);
|
||||
+void force_fcr31_sig(unsigned long fcr31, void __user *fault_addr,
|
||||
+ struct task_struct *tsk);
|
||||
int process_fpemu_return(int sig, void __user *fault_addr,
|
||||
unsigned long fcr31);
|
||||
int mm_isBranchInstr(struct pt_regs *regs, struct mm_decoded_insn dec_insn,
|
||||
@@ -92,4 +94,15 @@ static inline void fpu_emulator_init_fpu(void)
|
||||
set_fpr64(&t->thread.fpu.fpr[i], 0, SIGNALLING_NAN);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Mask the FCSR Cause bits according to the Enable bits, observing
|
||||
+ * that Unimplemented is always enabled.
|
||||
+ */
|
||||
+static inline unsigned long mask_fcr31_x(unsigned long fcr31)
|
||||
+{
|
||||
+ return fcr31 & (FPU_CSR_UNI_X |
|
||||
+ ((fcr31 & FPU_CSR_ALL_E) <<
|
||||
+ (ffs(FPU_CSR_ALL_X) - ffs(FPU_CSR_ALL_E))));
|
||||
+}
|
||||
+
|
||||
#endif /* _ASM_FPU_EMULATOR_H */
|
||||
diff --git a/arch/mips/include/asm/switch_to.h b/arch/mips/include/asm/switch_to.h
|
||||
index ebb5c0f2f90d..c0ae27971e31 100644
|
||||
--- a/arch/mips/include/asm/switch_to.h
|
||||
+++ b/arch/mips/include/asm/switch_to.h
|
||||
@@ -75,6 +75,22 @@ do { if (cpu_has_rw_llb) { \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
+/*
|
||||
+ * Check FCSR for any unmasked exceptions pending set with `ptrace',
|
||||
+ * clear them and send a signal.
|
||||
+ */
|
||||
+#define __sanitize_fcr31(next) \
|
||||
+do { \
|
||||
+ unsigned long fcr31 = mask_fcr31_x(next->thread.fpu.fcr31); \
|
||||
+ void __user *pc; \
|
||||
+ \
|
||||
+ if (unlikely(fcr31)) { \
|
||||
+ pc = (void __user *)task_pt_regs(next)->cp0_epc; \
|
||||
+ next->thread.fpu.fcr31 &= ~fcr31; \
|
||||
+ force_fcr31_sig(fcr31, pc, next); \
|
||||
+ } \
|
||||
+} while (0)
|
||||
+
|
||||
/*
|
||||
* For newly created kernel threads switch_to() will return to
|
||||
* ret_from_kernel_thread, newly created user threads to ret_from_fork.
|
||||
@@ -85,6 +101,8 @@ do { if (cpu_has_rw_llb) { \
|
||||
do { \
|
||||
__mips_mt_fpaff_switch_to(prev); \
|
||||
lose_fpu_inatomic(1, prev); \
|
||||
+ if (tsk_used_math(next)) \
|
||||
+ __sanitize_fcr31(next); \
|
||||
if (cpu_has_dsp) { \
|
||||
__save_dsp(prev); \
|
||||
__restore_dsp(next); \
|
||||
diff --git a/arch/mips/include/uapi/asm/inst.h b/arch/mips/include/uapi/asm/inst.h
|
||||
index 9b44d5a816fa..1b6f2f219298 100644
|
||||
--- a/arch/mips/include/uapi/asm/inst.h
|
||||
|
@ -176,6 +241,37 @@ index 9b44d5a816fa..1b6f2f219298 100644
|
|||
__BITFIELD_FIELD(unsigned int : 16, /* Ignored */
|
||||
;))))
|
||||
};
|
||||
diff --git a/arch/mips/kernel/mips-r2-to-r6-emul.c b/arch/mips/kernel/mips-r2-to-r6-emul.c
|
||||
index cbe0f025856d..7b887027dca2 100644
|
||||
--- a/arch/mips/kernel/mips-r2-to-r6-emul.c
|
||||
+++ b/arch/mips/kernel/mips-r2-to-r6-emul.c
|
||||
@@ -900,7 +900,7 @@ static inline int mipsr2_find_op_func(struct pt_regs *regs, u32 inst,
|
||||
* mipsr2_decoder: Decode and emulate a MIPS R2 instruction
|
||||
* @regs: Process register set
|
||||
* @inst: Instruction to decode and emulate
|
||||
- * @fcr31: Floating Point Control and Status Register returned
|
||||
+ * @fcr31: Floating Point Control and Status Register Cause bits returned
|
||||
*/
|
||||
int mipsr2_decoder(struct pt_regs *regs, u32 inst, unsigned long *fcr31)
|
||||
{
|
||||
@@ -1183,13 +1183,13 @@ fpu_emul:
|
||||
|
||||
err = fpu_emulator_cop1Handler(regs, ¤t->thread.fpu, 0,
|
||||
&fault_addr);
|
||||
- *fcr31 = current->thread.fpu.fcr31;
|
||||
|
||||
/*
|
||||
- * We can't allow the emulated instruction to leave any of
|
||||
- * the cause bits set in $fcr31.
|
||||
+ * We can't allow the emulated instruction to leave any
|
||||
+ * enabled Cause bits set in $fcr31.
|
||||
*/
|
||||
- current->thread.fpu.fcr31 &= ~FPU_CSR_ALL_X;
|
||||
+ *fcr31 = res = mask_fcr31_x(current->thread.fpu.fcr31);
|
||||
+ current->thread.fpu.fcr31 &= ~res;
|
||||
|
||||
/*
|
||||
* this is a tricky issue - lose_fpu() uses LL/SC atomics
|
||||
diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
|
||||
index ed6cac4a4df0..ebd8a715fe38 100644
|
||||
--- a/arch/mips/kernel/process.c
|
||||
|
@ -227,6 +323,158 @@ index ed6cac4a4df0..ebd8a715fe38 100644
|
|||
} else
|
||||
#endif
|
||||
info->frame_size = - ip->i_format.simmediate;
|
||||
diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
|
||||
index 5a869515b393..9d04392f7ef0 100644
|
||||
--- a/arch/mips/kernel/ptrace.c
|
||||
+++ b/arch/mips/kernel/ptrace.c
|
||||
@@ -79,16 +79,15 @@ void ptrace_disable(struct task_struct *child)
|
||||
}
|
||||
|
||||
/*
|
||||
- * Poke at FCSR according to its mask. Don't set the cause bits as
|
||||
- * this is currently not handled correctly in FP context restoration
|
||||
- * and will cause an oops if a corresponding enable bit is set.
|
||||
+ * Poke at FCSR according to its mask. Set the Cause bits even
|
||||
+ * if a corresponding Enable bit is set. This will be noticed at
|
||||
+ * the time the thread is switched to and SIGFPE thrown accordingly.
|
||||
*/
|
||||
static void ptrace_setfcr31(struct task_struct *child, u32 value)
|
||||
{
|
||||
u32 fcr31;
|
||||
u32 mask;
|
||||
|
||||
- value &= ~FPU_CSR_ALL_X;
|
||||
fcr31 = child->thread.fpu.fcr31;
|
||||
mask = boot_cpu_data.fpu_msk31;
|
||||
child->thread.fpu.fcr31 = (value & ~mask) | (fcr31 & mask);
|
||||
diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
|
||||
index 1b901218e3ae..6abd6b41c13d 100644
|
||||
--- a/arch/mips/kernel/traps.c
|
||||
+++ b/arch/mips/kernel/traps.c
|
||||
@@ -706,6 +706,32 @@ asmlinkage void do_ov(struct pt_regs *regs)
|
||||
exception_exit(prev_state);
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * Send SIGFPE according to FCSR Cause bits, which must have already
|
||||
+ * been masked against Enable bits. This is impotant as Inexact can
|
||||
+ * happen together with Overflow or Underflow, and `ptrace' can set
|
||||
+ * any bits.
|
||||
+ */
|
||||
+void force_fcr31_sig(unsigned long fcr31, void __user *fault_addr,
|
||||
+ struct task_struct *tsk)
|
||||
+{
|
||||
+ struct siginfo si = { .si_addr = fault_addr, .si_signo = SIGFPE };
|
||||
+
|
||||
+ if (fcr31 & FPU_CSR_INV_X)
|
||||
+ si.si_code = FPE_FLTINV;
|
||||
+ else if (fcr31 & FPU_CSR_DIV_X)
|
||||
+ si.si_code = FPE_FLTDIV;
|
||||
+ else if (fcr31 & FPU_CSR_OVF_X)
|
||||
+ si.si_code = FPE_FLTOVF;
|
||||
+ else if (fcr31 & FPU_CSR_UDF_X)
|
||||
+ si.si_code = FPE_FLTUND;
|
||||
+ else if (fcr31 & FPU_CSR_INE_X)
|
||||
+ si.si_code = FPE_FLTRES;
|
||||
+ else
|
||||
+ si.si_code = __SI_FAULT;
|
||||
+ force_sig_info(SIGFPE, &si, tsk);
|
||||
+}
|
||||
+
|
||||
int process_fpemu_return(int sig, void __user *fault_addr, unsigned long fcr31)
|
||||
{
|
||||
struct siginfo si = { 0 };
|
||||
@@ -715,27 +741,7 @@ int process_fpemu_return(int sig, void __user *fault_addr, unsigned long fcr31)
|
||||
return 0;
|
||||
|
||||
case SIGFPE:
|
||||
- si.si_addr = fault_addr;
|
||||
- si.si_signo = sig;
|
||||
- /*
|
||||
- * Inexact can happen together with Overflow or Underflow.
|
||||
- * Respect the mask to deliver the correct exception.
|
||||
- */
|
||||
- fcr31 &= (fcr31 & FPU_CSR_ALL_E) <<
|
||||
- (ffs(FPU_CSR_ALL_X) - ffs(FPU_CSR_ALL_E));
|
||||
- if (fcr31 & FPU_CSR_INV_X)
|
||||
- si.si_code = FPE_FLTINV;
|
||||
- else if (fcr31 & FPU_CSR_DIV_X)
|
||||
- si.si_code = FPE_FLTDIV;
|
||||
- else if (fcr31 & FPU_CSR_OVF_X)
|
||||
- si.si_code = FPE_FLTOVF;
|
||||
- else if (fcr31 & FPU_CSR_UDF_X)
|
||||
- si.si_code = FPE_FLTUND;
|
||||
- else if (fcr31 & FPU_CSR_INE_X)
|
||||
- si.si_code = FPE_FLTRES;
|
||||
- else
|
||||
- si.si_code = __SI_FAULT;
|
||||
- force_sig_info(sig, &si, current);
|
||||
+ force_fcr31_sig(fcr31, fault_addr, current);
|
||||
return 1;
|
||||
|
||||
case SIGBUS:
|
||||
@@ -798,13 +804,13 @@ static int simulate_fp(struct pt_regs *regs, unsigned int opcode,
|
||||
/* Run the emulator */
|
||||
sig = fpu_emulator_cop1Handler(regs, ¤t->thread.fpu, 1,
|
||||
&fault_addr);
|
||||
- fcr31 = current->thread.fpu.fcr31;
|
||||
|
||||
/*
|
||||
- * We can't allow the emulated instruction to leave any of
|
||||
- * the cause bits set in $fcr31.
|
||||
+ * We can't allow the emulated instruction to leave any
|
||||
+ * enabled Cause bits set in $fcr31.
|
||||
*/
|
||||
- current->thread.fpu.fcr31 &= ~FPU_CSR_ALL_X;
|
||||
+ fcr31 = mask_fcr31_x(current->thread.fpu.fcr31);
|
||||
+ current->thread.fpu.fcr31 &= ~fcr31;
|
||||
|
||||
/* Restore the hardware register state */
|
||||
own_fpu(1);
|
||||
@@ -830,7 +836,7 @@ asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31)
|
||||
goto out;
|
||||
|
||||
/* Clear FCSR.Cause before enabling interrupts */
|
||||
- write_32bit_cp1_register(CP1_STATUS, fcr31 & ~FPU_CSR_ALL_X);
|
||||
+ write_32bit_cp1_register(CP1_STATUS, fcr31 & ~mask_fcr31_x(fcr31));
|
||||
local_irq_enable();
|
||||
|
||||
die_if_kernel("FP exception in kernel code", regs);
|
||||
@@ -852,13 +858,13 @@ asmlinkage void do_fpe(struct pt_regs *regs, unsigned long fcr31)
|
||||
/* Run the emulator */
|
||||
sig = fpu_emulator_cop1Handler(regs, ¤t->thread.fpu, 1,
|
||||
&fault_addr);
|
||||
- fcr31 = current->thread.fpu.fcr31;
|
||||
|
||||
/*
|
||||
- * We can't allow the emulated instruction to leave any of
|
||||
- * the cause bits set in $fcr31.
|
||||
+ * We can't allow the emulated instruction to leave any
|
||||
+ * enabled Cause bits set in $fcr31.
|
||||
*/
|
||||
- current->thread.fpu.fcr31 &= ~FPU_CSR_ALL_X;
|
||||
+ fcr31 = mask_fcr31_x(current->thread.fpu.fcr31);
|
||||
+ current->thread.fpu.fcr31 &= ~fcr31;
|
||||
|
||||
/* Restore the hardware register state */
|
||||
own_fpu(1); /* Using the FPU again. */
|
||||
@@ -1431,13 +1437,13 @@ asmlinkage void do_cpu(struct pt_regs *regs)
|
||||
|
||||
sig = fpu_emulator_cop1Handler(regs, ¤t->thread.fpu, 0,
|
||||
&fault_addr);
|
||||
- fcr31 = current->thread.fpu.fcr31;
|
||||
|
||||
/*
|
||||
* We can't allow the emulated instruction to leave
|
||||
- * any of the cause bits set in $fcr31.
|
||||
+ * any enabled Cause bits set in $fcr31.
|
||||
*/
|
||||
- current->thread.fpu.fcr31 &= ~FPU_CSR_ALL_X;
|
||||
+ fcr31 = mask_fcr31_x(current->thread.fpu.fcr31);
|
||||
+ current->thread.fpu.fcr31 &= ~fcr31;
|
||||
|
||||
/* Send a signal if required. */
|
||||
if (!process_fpemu_return(sig, fault_addr, fcr31) && !err)
|
||||
diff --git a/arch/sparc/include/asm/page_64.h b/arch/sparc/include/asm/page_64.h
|
||||
index 8c2a8c937540..c1263fc390db 100644
|
||||
--- a/arch/sparc/include/asm/page_64.h
|
||||
|
@ -2162,6 +2410,14 @@ index 990ac41d8a5f..e53dfb5b826e 100644
|
|||
}
|
||||
}
|
||||
|
||||
@@ -8530,6 +8532,7 @@ SYSCALL_DEFINE5(perf_event_open,
|
||||
f_flags);
|
||||
if (IS_ERR(event_file)) {
|
||||
err = PTR_ERR(event_file);
|
||||
+ event_file = NULL;
|
||||
goto err_context;
|
||||
}
|
||||
|
||||
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
|
||||
index 65ed3501c2ca..4743e1f2a3d1 100644
|
||||
--- a/kernel/sched/core.c
|
||||
|
@ -3101,6 +3357,18 @@ index 06d050da0d94..50dffd183cc6 100644
|
|||
|
||||
queue_regulatory_request(request);
|
||||
|
||||
diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
|
||||
index d6a11af0bab1..9b6e51450fc5 100644
|
||||
--- a/net/xfrm/xfrm_state.c
|
||||
+++ b/net/xfrm/xfrm_state.c
|
||||
@@ -1884,6 +1884,7 @@ int xfrm_user_policy(struct sock *sk, int optname, u8 __user *optval, int optlen
|
||||
if (err >= 0) {
|
||||
xfrm_sk_policy_insert(sk, err, pol);
|
||||
xfrm_pol_put(pol);
|
||||
+ __sk_dst_reset(sk);
|
||||
err = 0;
|
||||
}
|
||||
|
||||
diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
|
||||
index a9b4491a3cc4..476f1fc6d655 100644
|
||||
--- a/net/xfrm/xfrm_user.c
|
||||
|
@ -3180,52 +3448,6 @@ index ac1d5b2b1626..a7095372701e 100644
|
|||
error2:
|
||||
mutex_unlock(&key_session_mutex);
|
||||
error:
|
||||
diff --git a/sound/core/timer.c b/sound/core/timer.c
|
||||
index ef850a99d64a..f989adb98a22 100644
|
||||
--- a/sound/core/timer.c
|
||||
+++ b/sound/core/timer.c
|
||||
@@ -35,6 +35,9 @@
|
||||
#include <sound/initval.h>
|
||||
#include <linux/kmod.h>
|
||||
|
||||
+/* internal flags */
|
||||
+#define SNDRV_TIMER_IFLG_PAUSED 0x00010000
|
||||
+
|
||||
#if IS_ENABLED(CONFIG_SND_HRTIMER)
|
||||
#define DEFAULT_TIMER_LIMIT 4
|
||||
#elif IS_ENABLED(CONFIG_SND_RTCTIMER)
|
||||
@@ -547,6 +550,10 @@ static int snd_timer_stop1(struct snd_timer_instance *timeri, bool stop)
|
||||
}
|
||||
}
|
||||
timeri->flags &= ~(SNDRV_TIMER_IFLG_RUNNING | SNDRV_TIMER_IFLG_START);
|
||||
+ if (stop)
|
||||
+ timeri->flags &= ~SNDRV_TIMER_IFLG_PAUSED;
|
||||
+ else
|
||||
+ timeri->flags |= SNDRV_TIMER_IFLG_PAUSED;
|
||||
snd_timer_notify1(timeri, stop ? SNDRV_TIMER_EVENT_STOP :
|
||||
SNDRV_TIMER_EVENT_PAUSE);
|
||||
unlock:
|
||||
@@ -608,6 +615,10 @@ int snd_timer_stop(struct snd_timer_instance *timeri)
|
||||
*/
|
||||
int snd_timer_continue(struct snd_timer_instance *timeri)
|
||||
{
|
||||
+ /* timer can continue only after pause */
|
||||
+ if (!(timeri->flags & SNDRV_TIMER_IFLG_PAUSED))
|
||||
+ return -EINVAL;
|
||||
+
|
||||
if (timeri->flags & SNDRV_TIMER_IFLG_SLAVE)
|
||||
return snd_timer_start_slave(timeri, false);
|
||||
else
|
||||
@@ -1837,6 +1848,9 @@ static int snd_timer_user_continue(struct file *file)
|
||||
tu = file->private_data;
|
||||
if (!tu->timeri)
|
||||
return -EBADFD;
|
||||
+ /* start timer instead of continue if it's not used before */
|
||||
+ if (!(tu->timeri->flags & SNDRV_TIMER_IFLG_PAUSED))
|
||||
+ return snd_timer_user_start(file);
|
||||
tu->timeri->lost = 0;
|
||||
return (err = snd_timer_continue(tu->timeri)) < 0 ? err : 0;
|
||||
}
|
||||
diff --git a/sound/soc/codecs/ak4613.c b/sound/soc/codecs/ak4613.c
|
||||
index 07a266460ec3..b4b36cc92ffe 100644
|
||||
--- a/sound/soc/codecs/ak4613.c
|
|
@ -964,6 +964,30 @@ index 083db3f5181f..8282ae0c4fc3 100644
|
|||
|
||||
/* write to PAT_DESCR to clear out any pending transaction */
|
||||
writel(0x0, dmm->base + reg[PAT_DESCR][engine->id]);
|
||||
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
|
||||
index f22e1e1ee64a..d1f3be78c649 100644
|
||||
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
|
||||
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
|
||||
@@ -547,6 +547,11 @@ static int rockchip_drm_platform_remove(struct platform_device *pdev)
|
||||
return 0;
|
||||
}
|
||||
|
||||
+static void rockchip_drm_platform_shutdown(struct platform_device *pdev)
|
||||
+{
|
||||
+ rockchip_drm_platform_remove(pdev);
|
||||
+}
|
||||
+
|
||||
static const struct of_device_id rockchip_drm_dt_ids[] = {
|
||||
{ .compatible = "rockchip,display-subsystem", },
|
||||
{ /* sentinel */ },
|
||||
@@ -556,6 +561,7 @@ MODULE_DEVICE_TABLE(of, rockchip_drm_dt_ids);
|
||||
static struct platform_driver rockchip_drm_platform_driver = {
|
||||
.probe = rockchip_drm_platform_probe,
|
||||
.remove = rockchip_drm_platform_remove,
|
||||
+ .shutdown = rockchip_drm_platform_shutdown,
|
||||
.driver = {
|
||||
.name = "rockchip-drm",
|
||||
.of_match_table = rockchip_drm_dt_ids,
|
||||
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c
|
||||
index b59b15d4caa9..308d8432fea3 100644
|
||||
--- a/drivers/hid/usbhid/hiddev.c
|
File diff suppressed because it is too large
Load diff
|
@ -2728,7 +2728,7 @@ index 77777d918676..cc892a9e109d 100644
|
|||
int diag, dtab_count;
|
||||
- int key;
|
||||
+ int key, buf_size, ret;
|
||||
static int last_crlf;
|
||||
|
||||
|
||||
diag = kdbgetintenv("DTABCOUNT", &dtab_count);
|
||||
@@ -335,9 +335,8 @@ poll_again:
|
221
patch/kernel/mvebu64-dev/general-packaging-4.17-dev.patch
Normal file
221
patch/kernel/mvebu64-dev/general-packaging-4.17-dev.patch
Normal file
|
@ -0,0 +1,221 @@
|
|||
diff --git a/scripts/package/builddeb b/scripts/package/builddeb
|
||||
index 90c9a8a..3c79b90 100755
|
||||
--- a/scripts/package/builddeb
|
||||
+++ b/scripts/package/builddeb
|
||||
@@ -29,6 +29,27 @@ create_package() {
|
||||
# in case we are in a restrictive umask environment like 0077
|
||||
chmod -R a+rX "$pdir"
|
||||
|
||||
+ # Create preinstall and post install script to remove dtb
|
||||
+ if [[ "$1" == *dtb* ]]; then
|
||||
+ echo "if [ -d /boot/dtb-$version ]; then mv /boot/dtb-$version /boot/dtb-$version.old; fi" >> $pdir/DEBIAN/preinst
|
||||
+ echo "if [ -d /boot/dtb.old ]; then rm -rf /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst
|
||||
+ echo "if [ -d /boot/dtb ]; then mv /boot/dtb /boot/dtb.old; fi" >> $pdir/DEBIAN/preinst
|
||||
+ echo "exit 0" >> $pdir/DEBIAN/preinst
|
||||
+ chmod 775 $pdir/DEBIAN/preinst
|
||||
+
|
||||
+ echo "if [ -d /boot/dtb-$version.old ]; then rm -rf /boot/dtb-$version.old; fi" >> $pdir/DEBIAN/postinst
|
||||
+ echo "ln -sf dtb-$version /boot/dtb > /dev/null 2>&1 || mv /boot/dtb-$version /boot/dtb" >> $pdir/DEBIAN/postinst
|
||||
+ echo "exit 0" >> $pdir/DEBIAN/postinst
|
||||
+ chmod 775 $pdir/DEBIAN/postinst
|
||||
+ fi
|
||||
+
|
||||
+ # Create postinstall script for headers
|
||||
+ if [[ "$1" == *headers* ]]; then
|
||||
+ echo "cd /usr/src/linux-headers-$version; echo \"Compiling headers - please wait ...\"; find -type f -exec touch {} +;make -s scripts >/dev/null 2>&1" >> $pdir/DEBIAN/postinst
|
||||
+ echo "exit 0" >> $pdir/DEBIAN/postinst
|
||||
+ chmod 775 $pdir/DEBIAN/postinst
|
||||
+ fi
|
||||
+
|
||||
# Create the package
|
||||
dpkg-gencontrol -p$pname -P"$pdir"
|
||||
dpkg --build "$pdir" ..
|
||||
@@ -39,9 +60,11 @@ tmpdir="$objtree/debian/tmp"
|
||||
kernel_headers_dir="$objtree/debian/hdrtmp"
|
||||
libc_headers_dir="$objtree/debian/headertmp"
|
||||
dbg_dir="$objtree/debian/dbgtmp"
|
||||
-packagename=linux-image-$version
|
||||
-kernel_headers_packagename=linux-headers-$version
|
||||
-libc_headers_packagename=linux-libc-dev
|
||||
+dtb_dir="$objtree/debian/dtbtmp"
|
||||
+packagename=linux-image-dev"$LOCALVERSION"
|
||||
+kernel_headers_packagename=linux-headers-dev"$LOCALVERSION"
|
||||
+dtb_packagename=linux-dtb-dev"$LOCALVERSION"
|
||||
+libc_headers_packagename=linux-libc-dev-dev"$LOCALVERSION"
|
||||
dbg_packagename=$packagename-dbg
|
||||
|
||||
if [ "$ARCH" = "um" ] ; then
|
||||
@@ -52,6 +75,15 @@ fi
|
||||
# XXX: have each arch Makefile export a variable of the canonical image install
|
||||
# path instead
|
||||
case $ARCH in
|
||||
+aarch64|arm64)
|
||||
+ image_name=Image
|
||||
+ installed_image_path="boot/vmlinuz-$version"
|
||||
+
|
||||
+ ;;
|
||||
+arm*)
|
||||
+ image_name=zImage
|
||||
+ installed_image_path="boot/vmlinuz-$version"
|
||||
+ ;;
|
||||
um)
|
||||
installed_image_path="usr/bin/linux-$version"
|
||||
;;
|
||||
@@ -65,7 +97,9 @@ esac
|
||||
BUILD_DEBUG="$(grep -s '^CONFIG_DEBUG_INFO=y' $KCONFIG_CONFIG || true)"
|
||||
|
||||
# Setup the directory structure
|
||||
-rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" $objtree/debian/files
|
||||
+rm -rf "$tmpdir" "$kernel_headers_dir" "$libc_headers_dir" "$dbg_dir" "$dtb_dir" $objtree/debian/files
|
||||
+mkdir -m 755 -p "$dtb_dir/DEBIAN"
|
||||
+mkdir -p "$dtb_dir/boot/dtb-$version" "$dtb_dir/usr/share/doc/$dtb_packagename"
|
||||
mkdir -m 755 -p "$tmpdir/DEBIAN"
|
||||
mkdir -p "$tmpdir/lib" "$tmpdir/boot"
|
||||
mkdir -p "$kernel_headers_dir/lib/modules/$version/"
|
||||
@@ -118,6 +152,11 @@ if grep -q '^CONFIG_MODULES=y' $KCONFIG_CONFIG ; then
|
||||
fi
|
||||
fi
|
||||
|
||||
+if grep -q '^CONFIG_OF=y' $KCONFIG_CONFIG ; then
|
||||
+ #mkdir -p "$tmpdir/boot/dtb"
|
||||
+ INSTALL_DTBS_PATH="$dtb_dir/boot/dtb-$version" $MAKE KBUILD_SRC= dtbs_install
|
||||
+fi
|
||||
+
|
||||
if [ "$ARCH" != "um" ]; then
|
||||
$MAKE headers_check KBUILD_SRC=
|
||||
$MAKE headers_install KBUILD_SRC= INSTALL_HDR_PATH="$libc_headers_dir/usr"
|
||||
@@ -137,7 +176,7 @@ fi
|
||||
for script in postinst postrm preinst prerm ; do
|
||||
mkdir -p "$tmpdir$debhookdir/$script.d"
|
||||
cat <<EOF > "$tmpdir/DEBIAN/$script"
|
||||
-#!/bin/sh
|
||||
+#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
@@ -153,9 +192,60 @@ EOF
|
||||
chmod 755 "$tmpdir/DEBIAN/$script"
|
||||
done
|
||||
|
||||
+##
|
||||
+## Create sym link to kernel image
|
||||
+##
|
||||
+sed -e "s/set -e//g" -i $tmpdir/DEBIAN/postinst
|
||||
+sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/postinst
|
||||
+cat >> $tmpdir/DEBIAN/postinst <<EOT
|
||||
+if [ "\$(grep nand /proc/partitions)" != "" ] && [ "\$(grep mmc /proc/partitions)" = "" ]; then
|
||||
+ mkimage -A arm -O linux -T kernel -C none -a "0x40008000" -e "0x40008000" -n "Linux kernel" -d /$installed_image_path /boot/uImage > /dev/null 2>&1
|
||||
+ cp /boot/uImage /tmp/uImage
|
||||
+ sync
|
||||
+ mountpoint -q /boot || mount /boot
|
||||
+ cp /tmp/uImage /boot/uImage
|
||||
+ rm -f /$installed_image_path
|
||||
+else
|
||||
+ ln -sf $(basename $installed_image_path) /boot/$image_name || mv /$installed_image_path /boot/$image_name
|
||||
+fi
|
||||
+touch /boot/.next
|
||||
+exit 0
|
||||
+EOT
|
||||
+
|
||||
+##
|
||||
+## FAT install workaround
|
||||
+##
|
||||
+sed -e "s/set -e//g" -i $tmpdir/DEBIAN/preinst
|
||||
+sed -e "s/exit 0//g" -i $tmpdir/DEBIAN/preinst
|
||||
+cat >> $tmpdir/DEBIAN/preinst <<EOT
|
||||
+# exit if we are running chroot
|
||||
+if [ "\$(stat -c %d:%i /)" != "\$(stat -c %d:%i /proc/1/root/.)" ]; then exit 0; fi
|
||||
+
|
||||
+check_and_unmount (){
|
||||
+ boot_device=\$(mountpoint -d /boot)
|
||||
+
|
||||
+ for file in /dev/* ; do
|
||||
+ CURRENT_DEVICE=\$(printf "%d:%d" \$(stat --printf="0x%t 0x%T" \$file))
|
||||
+ if [[ "\$CURRENT_DEVICE" = "\$boot_device" ]]; then
|
||||
+ boot_partition=\$file
|
||||
+ break
|
||||
+ fi
|
||||
+ done
|
||||
+
|
||||
+ bootfstype=\$(blkid -s TYPE -o value \$boot_partition)
|
||||
+ if [ "\$bootfstype" = "vfat" ]; then
|
||||
+ umount /boot
|
||||
+ rm -f /boot/System.map* /boot/config* /boot/vmlinuz* /boot/$image_name /boot/uImage
|
||||
+ fi
|
||||
+}
|
||||
+mountpoint -q /boot && check_and_unmount
|
||||
+EOT
|
||||
+echo "exit 0" >> $tmpdir/DEBIAN/preinst
|
||||
+
|
||||
# Build kernel header package
|
||||
(cd $srctree; find . -name Makefile\* -o -name Kconfig\* -o -name \*.pl) > "$objtree/debian/hdrsrcfiles"
|
||||
(cd $srctree; find arch/*/include include scripts -type f -o -type l) >> "$objtree/debian/hdrsrcfiles"
|
||||
+(cd $srctree; find security/*/include -type f) >> "$objtree/debian/hdrsrcfiles"
|
||||
(cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
|
||||
(cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
|
||||
if grep -q '^CONFIG_STACK_VALIDATION=y' $KCONFIG_CONFIG ; then
|
||||
@@ -167,15 +257,19 @@ if grep -q '^CONFIG_GCC_PLUGINS=y' $KCONFIG_CONFIG ; then
|
||||
fi
|
||||
destdir=$kernel_headers_dir/usr/src/linux-headers-$version
|
||||
mkdir -p "$destdir"
|
||||
+(cd $destdir; patch -p1 < /tmp/headers-debian-byteshift.patch)
|
||||
(cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
|
||||
(cd $objtree; tar -c -f - -T -) < "$objtree/debian/hdrobjfiles" | (cd $destdir; tar -xf -)
|
||||
(cd $objtree; cp $KCONFIG_CONFIG $destdir/.config) # copy .config manually to be where it's expected to be
|
||||
ln -sf "/usr/src/linux-headers-$version" "$kernel_headers_dir/lib/modules/$version/build"
|
||||
rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
|
||||
|
||||
+(cd $destdir; make M=scripts clean)
|
||||
+
|
||||
if [ "$ARCH" != "um" ]; then
|
||||
create_package "$kernel_headers_packagename" "$kernel_headers_dir"
|
||||
- create_package "$libc_headers_packagename" "$libc_headers_dir"
|
||||
+ # create_package "$libc_headers_packagename" "$libc_headers_dir"
|
||||
+ create_package "$dtb_packagename" "$dtb_dir"
|
||||
fi
|
||||
|
||||
create_package "$packagename" "$tmpdir"
|
||||
diff --git a/scripts/package/mkdebian b/scripts/package/mkdebian
|
||||
index 6adb3a1..00e12eb 100755
|
||||
--- a/scripts/package/mkdebian
|
||||
+++ b/scripts/package/mkdebian
|
||||
@@ -61,10 +61,12 @@ else
|
||||
packageversion=$version-$revision
|
||||
fi
|
||||
sourcename=$KDEB_SOURCENAME
|
||||
-packagename=linux-image-$version
|
||||
-kernel_headers_packagename=linux-headers-$version
|
||||
+packagename=linux-image-dev$LOCALVERSION
|
||||
+kernel_headers_packagename=linux-headers-dev$LOCALVERSION
|
||||
+dtb_packagename=linux-dtb-dev$LOCALVERSION
|
||||
dbg_packagename=$packagename-dbg
|
||||
debarch=
|
||||
+image_name=
|
||||
set_debarch
|
||||
|
||||
if [ "$ARCH" = "um" ] ; then
|
||||
@@ -168,6 +170,11 @@ Architecture: $debarch
|
||||
Description: Linux kernel debugging symbols for $version
|
||||
This package will come in handy if you need to debug the kernel. It provides
|
||||
all the necessary debug symbols for the kernel and its modules.
|
||||
+
|
||||
+Package: $dtb_packagename
|
||||
+Architecture: $debarch
|
||||
+Description: Linux DTB, version $version
|
||||
+ This package contains device blobs from the Linux kernel, version $version
|
||||
EOF
|
||||
|
||||
cat <<EOF > debian/rules
|
||||
diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
|
||||
index f839ecd9..cd276162 100644
|
||||
--- a/arch/arm64/Makefile
|
||||
+++ b/arch/arm64/Makefile
|
||||
@@ -103,7 +103,7 @@ core-$(CONFIG_EFI_STUB) += $(objtree)/drivers/firmware/efi/libstub/lib.a
|
||||
|
||||
# Default target when executing plain make
|
||||
boot := arch/arm64/boot
|
||||
-KBUILD_IMAGE := $(boot)/Image.gz
|
||||
+KBUILD_IMAGE := $(boot)/Image
|
||||
|
||||
all: Image.gz $(KBUILD_DTBS)
|
||||
|
|
@ -1,171 +0,0 @@
|
|||
From d04dea80f1c9c2a1e036cc18a791041ce9da0925 Mon Sep 17 00:00:00 2001
|
||||
From: jahutchi <jahutchinson99@googlemail.com>
|
||||
Date: Fri, 11 Jan 2019 13:35:00 +0000
|
||||
Subject: [PATCH] media: m88ds3103: serialize reset messages in m88ds3103_set_frontend
|
||||
|
||||
Ref: https://bugzilla.kernel.org/show_bug.cgi?id=199323
|
||||
|
||||
Users are experiencing problems with the DVBSky S960/S960C USB devices
|
||||
since the following commit:
|
||||
|
||||
9d659ae: ("locking/mutex: Add lock handoff to avoid starvation")
|
||||
|
||||
The device malfunctions after running for an indeterminable period of
|
||||
time, and the problem can only be cleared by rebooting the machine.
|
||||
|
||||
It is possible to encourage the problem to surface by blocking the
|
||||
signal to the LNB.
|
||||
|
||||
Further debugging reveals the cause of the problem.
|
||||
|
||||
In the following capture:
|
||||
- thread #1325 is running m88ds3103_set_frontend
|
||||
- thread #42 is running ts2020_stat_work
|
||||
|
||||
a> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 80
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 08
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 68 3f
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 08 ff
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 3d
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
|
||||
b> [1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 07 00
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 21
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: >>> 09 01 01 60 66
|
||||
[42] usb 1-1: dvb_usb_v2_generic_io: <<< 07 ff
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 68 02 03 11
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: >>> 08 60 02 10 0b
|
||||
[1325] usb 1-1: dvb_usb_v2_generic_io: <<< 07
|
||||
|
||||
Two i2c messages are sent to perform a reset in m88ds3103_set_frontend:
|
||||
|
||||
a. 0x07, 0x80
|
||||
b. 0x07, 0x00
|
||||
|
||||
However, as shown in the capture, the regmap mutex is being handed over
|
||||
to another thread (ts2020_stat_work) in between these two messages.
|
||||
|
||||
From here, the device responds to every i2c message with an 07 message,
|
||||
and will only return to normal operation following a power cycle.
|
||||
|
||||
Use regmap_multi_reg_write to group the two reset messages, ensuring
|
||||
both are processed before the regmap mutex is unlocked.
|
||||
---
|
||||
drivers/media/dvb-frontends/m88ds3103.c | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/dvb-frontends/m88ds3103.c b/drivers/media/dvb-frontends/m88ds3103.c
|
||||
index dffd2d4bf..e495a26e6 100644
|
||||
--- a/drivers/media/dvb-frontends/m88ds3103.c
|
||||
+++ b/drivers/media/dvb-frontends/m88ds3103.c
|
||||
@@ -309,6 +309,7 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe)
|
||||
u16 u16tmp;
|
||||
u32 tuner_frequency_khz, target_mclk;
|
||||
s32 s32tmp;
|
||||
+ static const struct reg_sequence reset_buf[] = {{0x07, 0x80}, {0x07, 0x00}};
|
||||
|
||||
dev_dbg(&client->dev,
|
||||
"delivery_system=%d modulation=%d frequency=%u symbol_rate=%d inversion=%d pilot=%d rolloff=%d\n",
|
||||
@@ -321,11 +322,7 @@ static int m88ds3103_set_frontend(struct dvb_frontend *fe)
|
||||
}
|
||||
|
||||
/* reset */
|
||||
- ret = regmap_write(dev->regmap, 0x07, 0x80);
|
||||
- if (ret)
|
||||
- goto err;
|
||||
-
|
||||
- ret = regmap_write(dev->regmap, 0x07, 0x00);
|
||||
+ ret = regmap_multi_reg_write(dev->regmap, reset_buf, 2);
|
||||
if (ret)
|
||||
goto err;
|
||||
|
||||
|
||||
--
|
||||
2.7.4
|
||||
|
||||
From 398be6861aeb95001252a2371ff4c06047dfa276 Mon Sep 17 00:00:00 2001
|
||||
From: James Hutchinson <jahutchinson99@googlemail.com>
|
||||
Date: Fri, 12 Oct 2018 10:57:34 +0100
|
||||
Subject: [PATCH] media: dvbsky: use a single mutex and state buffers for all R/W ops
|
||||
|
||||
See: https://bugzilla.kernel.org/show_bug.cgi?id=199323
|
||||
|
||||
This builds on the previous attempt to serialize all R/W ops, which caused bad effects for several users:
|
||||
media: dvbsky: use just one mutex for serializing device R/W ops
|
||||
|
||||
Mutex locking and timeout issues have been reported by several users, on various kernel versions. With the issue seemingly more prevalent on kernel 4.10 and above following changes to the mutex/locking code.
|
||||
|
||||
Debug tracing shows the device malfunctioning shortly after receiving an extra {10} message in-between the {37 00 00}, {36 03 00} message pair.
|
||||
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: >>> 37 00 00
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: >>> 10
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: <<< ff ff
|
||||
dvb_usb_v2:dvb_usb_v2_generic_io: usb 1-1: dvb_usb_v2_generic_io: >>> 36 03 00
|
||||
...
|
||||
m88ds3103:m88ds3103_diseqc_send_master_cmd: m88ds3103 4-0068: diseqc tx timeout
|
||||
m88ds3103:m88ds3103_diseqc_send_master_cmd: m88ds3103 4-0068: failed=-110
|
||||
|
||||
Resolve this by using the single usb_mutex as attempted previously, this time using the obuf state buffer.
|
||||
|
||||
Also simplify things a little by using dvb_usbv2_generic_write_locked rather than dvb_usbv2_generic_rw_locked.
|
||||
---
|
||||
drivers/media/usb/dvb-usb-v2/dvbsky.c | 17 ++++++++---------
|
||||
1 file changed, 8 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git a/drivers/media/usb/dvb-usb-v2/dvbsky.c b/drivers/media/usb/dvb-usb-v2/dvbsky.c
|
||||
index 02dbc6c..8de4a86 100644
|
||||
--- a/drivers/media/usb/dvb-usb-v2/dvbsky.c
|
||||
+++ b/drivers/media/usb/dvb-usb-v2/dvbsky.c
|
||||
@@ -35,7 +35,6 @@ MODULE_PARM_DESC(disable_rc, "Disable inbuilt IR receiver.");
|
||||
DVB_DEFINE_MOD_OPT_ADAPTER_NR(adapter_nr);
|
||||
|
||||
struct dvbsky_state {
|
||||
- struct mutex stream_mutex;
|
||||
u8 ibuf[DVBSKY_BUF_LEN];
|
||||
u8 obuf[DVBSKY_BUF_LEN];
|
||||
u8 last_lock;
|
||||
@@ -74,16 +73,18 @@ static int dvbsky_stream_ctrl(struct dvb_usb_device *d, u8 onoff)
|
||||
{
|
||||
struct dvbsky_state *state = d_to_priv(d);
|
||||
int ret;
|
||||
- u8 obuf_pre[3] = { 0x37, 0, 0 };
|
||||
- u8 obuf_post[3] = { 0x36, 3, 0 };
|
||||
+ static u8 obuf_pre[3] = { 0x37, 0, 0 };
|
||||
+ static u8 obuf_post[3] = { 0x36, 3, 0 };
|
||||
|
||||
- mutex_lock(&state->stream_mutex);
|
||||
- ret = dvbsky_usb_generic_rw(d, obuf_pre, 3, NULL, 0);
|
||||
+ mutex_lock(&d->usb_mutex);
|
||||
+ memcpy(state->obuf, obuf_pre, 3);
|
||||
+ ret = dvb_usbv2_generic_write_locked(d, state->obuf, 3);
|
||||
if (!ret && onoff) {
|
||||
msleep(20);
|
||||
- ret = dvbsky_usb_generic_rw(d, obuf_post, 3, NULL, 0);
|
||||
+ memcpy(state->obuf, obuf_post, 3);
|
||||
+ ret = dvb_usbv2_generic_write_locked(d, state->obuf, 3);
|
||||
}
|
||||
- mutex_unlock(&state->stream_mutex);
|
||||
+ mutex_unlock(&d->usb_mutex);
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -689,8 +690,6 @@ static int dvbsky_init(struct dvb_usb_device *d)
|
||||
if (ret)
|
||||
return ret;
|
||||
*/
|
||||
- mutex_init(&state->stream_mutex);
|
||||
-
|
||||
state->last_lock = 0;
|
||||
|
||||
return 0;
|
||||
--
|
||||
2.11.0
|
||||
|
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -32,6 +32,7 @@ config WIRELESS_WDS
|
||||
|
||||
source "drivers/net/wireless/admtek/Kconfig"
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/atmel/Kconfig"
|
||||
source "drivers/net/wireless/broadcom/Kconfig"
|
||||
source "drivers/net/wireless/cisco/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
|
||||
obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/
|
||||
obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/
|
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -32,6 +32,7 @@ config WIRELESS_WDS
|
||||
|
||||
source "drivers/net/wireless/admtek/Kconfig"
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/atmel/Kconfig"
|
||||
source "drivers/net/wireless/broadcom/Kconfig"
|
||||
source "drivers/net/wireless/cisco/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
|
||||
obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/
|
||||
obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -32,6 +32,7 @@ config WIRELESS_WDS
|
||||
|
||||
source "drivers/net/wireless/admtek/Kconfig"
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/atmel/Kconfig"
|
||||
source "drivers/net/wireless/broadcom/Kconfig"
|
||||
source "drivers/net/wireless/cisco/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
|
||||
obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/
|
||||
obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1,636 +0,0 @@
|
|||
diff --git a/Makefile b/Makefile
|
||||
index d07a6283b67e..06d5c6a6a0f6 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 158
|
||||
+SUBLEVEL = 159
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
|
||||
index 724a08740a04..9c7358110d32 100644
|
||||
--- a/arch/x86/xen/pmu.c
|
||||
+++ b/arch/x86/xen/pmu.c
|
||||
@@ -477,7 +477,7 @@ static void xen_convert_regs(const struct xen_pmu_regs *xen_regs,
|
||||
irqreturn_t xen_pmu_irq_handler(int irq, void *dev_id)
|
||||
{
|
||||
int err, ret = IRQ_NONE;
|
||||
- struct pt_regs regs;
|
||||
+ struct pt_regs regs = {0};
|
||||
const struct xen_pmu_data *xenpmu_data = get_xenpmu_data();
|
||||
uint8_t xenpmu_flags = get_xenpmu_flags();
|
||||
|
||||
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
|
||||
index ababdaabe870..1855b475cc0b 100644
|
||||
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
|
||||
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
|
||||
@@ -253,12 +253,16 @@ nouveau_connector_detect(struct drm_connector *connector, bool force)
|
||||
nv_connector->edid = NULL;
|
||||
}
|
||||
|
||||
- /* Outputs are only polled while runtime active, so acquiring a
|
||||
- * runtime PM ref here is unnecessary (and would deadlock upon
|
||||
- * runtime suspend because it waits for polling to finish).
|
||||
+ /* Outputs are only polled while runtime active, so resuming the
|
||||
+ * device here is unnecessary (and would deadlock upon runtime suspend
|
||||
+ * because it waits for polling to finish). We do however, want to
|
||||
+ * prevent the autosuspend timer from elapsing during this operation
|
||||
+ * if possible.
|
||||
*/
|
||||
- if (!drm_kms_helper_is_poll_worker()) {
|
||||
- ret = pm_runtime_get_sync(connector->dev->dev);
|
||||
+ if (drm_kms_helper_is_poll_worker()) {
|
||||
+ pm_runtime_get_noresume(dev->dev);
|
||||
+ } else {
|
||||
+ ret = pm_runtime_get_sync(dev->dev);
|
||||
if (ret < 0 && ret != -EACCES)
|
||||
return conn_status;
|
||||
}
|
||||
@@ -329,10 +333,8 @@ detect_analog:
|
||||
|
||||
out:
|
||||
|
||||
- if (!drm_kms_helper_is_poll_worker()) {
|
||||
- pm_runtime_mark_last_busy(connector->dev->dev);
|
||||
- pm_runtime_put_autosuspend(connector->dev->dev);
|
||||
- }
|
||||
+ pm_runtime_mark_last_busy(dev->dev);
|
||||
+ pm_runtime_put_autosuspend(dev->dev);
|
||||
|
||||
return conn_status;
|
||||
}
|
||||
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
|
||||
index e4541c6bf3d3..4564ecf71181 100644
|
||||
--- a/drivers/hid/hid-core.c
|
||||
+++ b/drivers/hid/hid-core.c
|
||||
@@ -2011,6 +2011,9 @@ static const struct hid_device_id hid_have_special_driver[] = {
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS3_CONTROLLER) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER) },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_2) },
|
||||
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_2) },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_DONGLE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGX_MOUSE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_VAIO_VGP_MOUSE) },
|
||||
{ HID_USB_DEVICE(USB_VENDOR_ID_STEELSERIES, USB_DEVICE_ID_STEELSERIES_SRWS1) },
|
||||
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
|
||||
index 60e2c9faa95f..00d8366a614e 100644
|
||||
--- a/drivers/hid/hid-ids.h
|
||||
+++ b/drivers/hid/hid-ids.h
|
||||
@@ -879,6 +879,8 @@
|
||||
#define USB_DEVICE_ID_SONY_PS3_BDREMOTE 0x0306
|
||||
#define USB_DEVICE_ID_SONY_PS3_CONTROLLER 0x0268
|
||||
#define USB_DEVICE_ID_SONY_PS4_CONTROLLER 0x05c4
|
||||
+#define USB_DEVICE_ID_SONY_PS4_CONTROLLER_2 0x09cc
|
||||
+#define USB_DEVICE_ID_SONY_PS4_CONTROLLER_DONGLE 0x0ba0
|
||||
#define USB_DEVICE_ID_SONY_MOTION_CONTROLLER 0x03d5
|
||||
#define USB_DEVICE_ID_SONY_NAVIGATION_CONTROLLER 0x042f
|
||||
#define USB_DEVICE_ID_SONY_BUZZ_CONTROLLER 0x0002
|
||||
diff --git a/drivers/hid/hid-sony.c b/drivers/hid/hid-sony.c
|
||||
index 21febbb0d84e..6f3d47185bf0 100644
|
||||
--- a/drivers/hid/hid-sony.c
|
||||
+++ b/drivers/hid/hid-sony.c
|
||||
@@ -2460,6 +2460,12 @@ static const struct hid_device_id sony_devices[] = {
|
||||
.driver_data = DUALSHOCK4_CONTROLLER_USB },
|
||||
{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER),
|
||||
.driver_data = DUALSHOCK4_CONTROLLER_BT },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_2),
|
||||
+ .driver_data = DUALSHOCK4_CONTROLLER_USB },
|
||||
+ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_2),
|
||||
+ .driver_data = DUALSHOCK4_CONTROLLER_BT },
|
||||
+ { HID_USB_DEVICE(USB_VENDOR_ID_SONY, USB_DEVICE_ID_SONY_PS4_CONTROLLER_DONGLE),
|
||||
+ .driver_data = DUALSHOCK4_CONTROLLER_USB },
|
||||
{ }
|
||||
};
|
||||
MODULE_DEVICE_TABLE(hid, sony_devices);
|
||||
diff --git a/drivers/infiniband/hw/cxgb4/qp.c b/drivers/infiniband/hw/cxgb4/qp.c
|
||||
index 53aa7515f542..04206c600098 100644
|
||||
--- a/drivers/infiniband/hw/cxgb4/qp.c
|
||||
+++ b/drivers/infiniband/hw/cxgb4/qp.c
|
||||
@@ -1183,6 +1183,12 @@ static void flush_qp(struct c4iw_qp *qhp)
|
||||
|
||||
t4_set_wq_in_error(&qhp->wq);
|
||||
if (qhp->ibqp.uobject) {
|
||||
+
|
||||
+ /* for user qps, qhp->wq.flushed is protected by qhp->mutex */
|
||||
+ if (qhp->wq.flushed)
|
||||
+ return;
|
||||
+
|
||||
+ qhp->wq.flushed = 1;
|
||||
t4_set_cq_in_error(&rchp->cq);
|
||||
spin_lock_irqsave(&rchp->comp_handler_lock, flag);
|
||||
(*rchp->ibcq.comp_handler)(&rchp->ibcq, rchp->ibcq.cq_context);
|
||||
diff --git a/drivers/net/appletalk/ipddp.c b/drivers/net/appletalk/ipddp.c
|
||||
index 2e4649655181..4e98e5aff7c5 100644
|
||||
--- a/drivers/net/appletalk/ipddp.c
|
||||
+++ b/drivers/net/appletalk/ipddp.c
|
||||
@@ -284,8 +284,12 @@ static int ipddp_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
|
||||
case SIOCFINDIPDDPRT:
|
||||
spin_lock_bh(&ipddp_route_lock);
|
||||
rp = __ipddp_find_route(&rcp);
|
||||
- if (rp)
|
||||
- memcpy(&rcp2, rp, sizeof(rcp2));
|
||||
+ if (rp) {
|
||||
+ memset(&rcp2, 0, sizeof(rcp2));
|
||||
+ rcp2.ip = rp->ip;
|
||||
+ rcp2.at = rp->at;
|
||||
+ rcp2.flags = rp->flags;
|
||||
+ }
|
||||
spin_unlock_bh(&ipddp_route_lock);
|
||||
|
||||
if (rp) {
|
||||
diff --git a/drivers/net/ethernet/hp/hp100.c b/drivers/net/ethernet/hp/hp100.c
|
||||
index 3daf2d4a7ca0..884aa809baac 100644
|
||||
--- a/drivers/net/ethernet/hp/hp100.c
|
||||
+++ b/drivers/net/ethernet/hp/hp100.c
|
||||
@@ -2636,7 +2636,7 @@ static int hp100_login_to_vg_hub(struct net_device *dev, u_short force_relogin)
|
||||
/* Wait for link to drop */
|
||||
time = jiffies + (HZ / 10);
|
||||
do {
|
||||
- if (~(hp100_inb(VG_LAN_CFG_1) & HP100_LINK_UP_ST))
|
||||
+ if (!(hp100_inb(VG_LAN_CFG_1) & HP100_LINK_UP_ST))
|
||||
break;
|
||||
if (!in_interrupt())
|
||||
schedule_timeout_interruptible(1);
|
||||
diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
|
||||
index 3270b4333668..0a4bd73caae5 100644
|
||||
--- a/drivers/net/xen-netfront.c
|
||||
+++ b/drivers/net/xen-netfront.c
|
||||
@@ -892,7 +892,11 @@ static RING_IDX xennet_fill_frags(struct netfront_queue *queue,
|
||||
BUG_ON(pull_to <= skb_headlen(skb));
|
||||
__pskb_pull_tail(skb, pull_to - skb_headlen(skb));
|
||||
}
|
||||
- BUG_ON(skb_shinfo(skb)->nr_frags >= MAX_SKB_FRAGS);
|
||||
+ if (unlikely(skb_shinfo(skb)->nr_frags >= MAX_SKB_FRAGS)) {
|
||||
+ queue->rx.rsp_cons = ++cons;
|
||||
+ kfree_skb(nskb);
|
||||
+ return ~0U;
|
||||
+ }
|
||||
|
||||
skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags,
|
||||
skb_frag_page(nfrag),
|
||||
@@ -1029,6 +1033,8 @@ err:
|
||||
skb->len += rx->status;
|
||||
|
||||
i = xennet_fill_frags(queue, skb, &tmpq);
|
||||
+ if (unlikely(i == ~0U))
|
||||
+ goto err;
|
||||
|
||||
if (rx->flags & XEN_NETRXF_csum_blank)
|
||||
skb->ip_summed = CHECKSUM_PARTIAL;
|
||||
diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c
|
||||
index 1e1e59423889..3df47c1b04ec 100644
|
||||
--- a/drivers/platform/x86/alienware-wmi.c
|
||||
+++ b/drivers/platform/x86/alienware-wmi.c
|
||||
@@ -463,6 +463,7 @@ static acpi_status alienware_hdmi_command(struct hdmi_args *in_args,
|
||||
if (obj && obj->type == ACPI_TYPE_INTEGER)
|
||||
*out_data = (u32) obj->integer.value;
|
||||
}
|
||||
+ kfree(output.pointer);
|
||||
return status;
|
||||
|
||||
}
|
||||
diff --git a/drivers/target/iscsi/iscsi_target_auth.c b/drivers/target/iscsi/iscsi_target_auth.c
|
||||
index 47e249dccb5f..b380bc7ee10a 100644
|
||||
--- a/drivers/target/iscsi/iscsi_target_auth.c
|
||||
+++ b/drivers/target/iscsi/iscsi_target_auth.c
|
||||
@@ -26,18 +26,6 @@
|
||||
#include "iscsi_target_nego.h"
|
||||
#include "iscsi_target_auth.h"
|
||||
|
||||
-static int chap_string_to_hex(unsigned char *dst, unsigned char *src, int len)
|
||||
-{
|
||||
- int j = DIV_ROUND_UP(len, 2), rc;
|
||||
-
|
||||
- rc = hex2bin(dst, src, j);
|
||||
- if (rc < 0)
|
||||
- pr_debug("CHAP string contains non hex digit symbols\n");
|
||||
-
|
||||
- dst[j] = '\0';
|
||||
- return j;
|
||||
-}
|
||||
-
|
||||
static void chap_binaryhex_to_asciihex(char *dst, char *src, int src_len)
|
||||
{
|
||||
int i;
|
||||
@@ -241,9 +229,16 @@ static int chap_server_compute_md5(
|
||||
pr_err("Could not find CHAP_R.\n");
|
||||
goto out;
|
||||
}
|
||||
+ if (strlen(chap_r) != MD5_SIGNATURE_SIZE * 2) {
|
||||
+ pr_err("Malformed CHAP_R\n");
|
||||
+ goto out;
|
||||
+ }
|
||||
+ if (hex2bin(client_digest, chap_r, MD5_SIGNATURE_SIZE) < 0) {
|
||||
+ pr_err("Malformed CHAP_R\n");
|
||||
+ goto out;
|
||||
+ }
|
||||
|
||||
pr_debug("[server] Got CHAP_R=%s\n", chap_r);
|
||||
- chap_string_to_hex(client_digest, chap_r, strlen(chap_r));
|
||||
|
||||
tfm = crypto_alloc_hash("md5", 0, CRYPTO_ALG_ASYNC);
|
||||
if (IS_ERR(tfm)) {
|
||||
@@ -348,9 +343,7 @@ static int chap_server_compute_md5(
|
||||
pr_err("Could not find CHAP_C.\n");
|
||||
goto out;
|
||||
}
|
||||
- pr_debug("[server] Got CHAP_C=%s\n", challenge);
|
||||
- challenge_len = chap_string_to_hex(challenge_binhex, challenge,
|
||||
- strlen(challenge));
|
||||
+ challenge_len = DIV_ROUND_UP(strlen(challenge), 2);
|
||||
if (!challenge_len) {
|
||||
pr_err("Unable to convert incoming challenge\n");
|
||||
goto out;
|
||||
@@ -359,6 +352,11 @@ static int chap_server_compute_md5(
|
||||
pr_err("CHAP_C exceeds maximum binary size of 1024 bytes\n");
|
||||
goto out;
|
||||
}
|
||||
+ if (hex2bin(challenge_binhex, challenge, challenge_len) < 0) {
|
||||
+ pr_err("Malformed CHAP_C\n");
|
||||
+ goto out;
|
||||
+ }
|
||||
+ pr_debug("[server] Got CHAP_C=%s\n", challenge);
|
||||
/*
|
||||
* During mutual authentication, the CHAP_C generated by the
|
||||
* initiator must not match the original CHAP_C generated by
|
||||
diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c
|
||||
index 97d5a74558a3..a86bc7afb3b2 100644
|
||||
--- a/drivers/tty/vt/vt_ioctl.c
|
||||
+++ b/drivers/tty/vt/vt_ioctl.c
|
||||
@@ -31,6 +31,8 @@
|
||||
#include <asm/io.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
+#include <linux/nospec.h>
|
||||
+
|
||||
#include <linux/kbd_kern.h>
|
||||
#include <linux/vt_kern.h>
|
||||
#include <linux/kbd_diacr.h>
|
||||
@@ -703,6 +705,8 @@ int vt_ioctl(struct tty_struct *tty,
|
||||
if (vsa.console == 0 || vsa.console > MAX_NR_CONSOLES)
|
||||
ret = -ENXIO;
|
||||
else {
|
||||
+ vsa.console = array_index_nospec(vsa.console,
|
||||
+ MAX_NR_CONSOLES + 1);
|
||||
vsa.console--;
|
||||
console_lock();
|
||||
ret = vc_allocate(vsa.console);
|
||||
diff --git a/fs/ext4/dir.c b/fs/ext4/dir.c
|
||||
index 6d17f31a31d7..8eb768bbf5b5 100644
|
||||
--- a/fs/ext4/dir.c
|
||||
+++ b/fs/ext4/dir.c
|
||||
@@ -74,7 +74,7 @@ int __ext4_check_dir_entry(const char *function, unsigned int line,
|
||||
else if (unlikely(rlen < EXT4_DIR_REC_LEN(de->name_len)))
|
||||
error_msg = "rec_len is too small for name_len";
|
||||
else if (unlikely(((char *) de - buf) + rlen > size))
|
||||
- error_msg = "directory entry across range";
|
||||
+ error_msg = "directory entry overrun";
|
||||
else if (unlikely(le32_to_cpu(de->inode) >
|
||||
le32_to_cpu(EXT4_SB(dir->i_sb)->s_es->s_inodes_count)))
|
||||
error_msg = "inode out of bounds";
|
||||
@@ -83,18 +83,16 @@ int __ext4_check_dir_entry(const char *function, unsigned int line,
|
||||
|
||||
if (filp)
|
||||
ext4_error_file(filp, function, line, bh->b_blocknr,
|
||||
- "bad entry in directory: %s - offset=%u(%u), "
|
||||
- "inode=%u, rec_len=%d, name_len=%d",
|
||||
- error_msg, (unsigned) (offset % size),
|
||||
- offset, le32_to_cpu(de->inode),
|
||||
- rlen, de->name_len);
|
||||
+ "bad entry in directory: %s - offset=%u, "
|
||||
+ "inode=%u, rec_len=%d, name_len=%d, size=%d",
|
||||
+ error_msg, offset, le32_to_cpu(de->inode),
|
||||
+ rlen, de->name_len, size);
|
||||
else
|
||||
ext4_error_inode(dir, function, line, bh->b_blocknr,
|
||||
- "bad entry in directory: %s - offset=%u(%u), "
|
||||
- "inode=%u, rec_len=%d, name_len=%d",
|
||||
- error_msg, (unsigned) (offset % size),
|
||||
- offset, le32_to_cpu(de->inode),
|
||||
- rlen, de->name_len);
|
||||
+ "bad entry in directory: %s - offset=%u, "
|
||||
+ "inode=%u, rec_len=%d, name_len=%d, size=%d",
|
||||
+ error_msg, offset, le32_to_cpu(de->inode),
|
||||
+ rlen, de->name_len, size);
|
||||
|
||||
return 1;
|
||||
}
|
||||
diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
|
||||
index c449bc089c94..1e7a9774119c 100644
|
||||
--- a/fs/ext4/inline.c
|
||||
+++ b/fs/ext4/inline.c
|
||||
@@ -1756,6 +1756,7 @@ int empty_inline_dir(struct inode *dir, int *has_inline_data)
|
||||
{
|
||||
int err, inline_size;
|
||||
struct ext4_iloc iloc;
|
||||
+ size_t inline_len;
|
||||
void *inline_pos;
|
||||
unsigned int offset;
|
||||
struct ext4_dir_entry_2 *de;
|
||||
@@ -1783,8 +1784,9 @@ int empty_inline_dir(struct inode *dir, int *has_inline_data)
|
||||
goto out;
|
||||
}
|
||||
|
||||
+ inline_len = ext4_get_inline_size(dir);
|
||||
offset = EXT4_INLINE_DOTDOT_SIZE;
|
||||
- while (offset < dir->i_size) {
|
||||
+ while (offset < inline_len) {
|
||||
de = ext4_get_inline_entry(dir, &iloc, offset,
|
||||
&inline_pos, &inline_size);
|
||||
if (ext4_check_dir_entry(dir, NULL, de,
|
||||
diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
|
||||
index 0a512aa81bf7..4c9d799955d1 100644
|
||||
--- a/fs/ext4/mmp.c
|
||||
+++ b/fs/ext4/mmp.c
|
||||
@@ -48,7 +48,6 @@ static int write_mmp_block(struct super_block *sb, struct buffer_head *bh)
|
||||
*/
|
||||
sb_start_write(sb);
|
||||
ext4_mmp_csum_set(sb, mmp);
|
||||
- mark_buffer_dirty(bh);
|
||||
lock_buffer(bh);
|
||||
bh->b_end_io = end_buffer_write_sync;
|
||||
get_bh(bh);
|
||||
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
|
||||
index d2421fd38833..783280ebc2fe 100644
|
||||
--- a/fs/ext4/resize.c
|
||||
+++ b/fs/ext4/resize.c
|
||||
@@ -18,6 +18,7 @@
|
||||
|
||||
int ext4_resize_begin(struct super_block *sb)
|
||||
{
|
||||
+ struct ext4_sb_info *sbi = EXT4_SB(sb);
|
||||
int ret = 0;
|
||||
|
||||
if (!capable(CAP_SYS_RESOURCE))
|
||||
@@ -28,7 +29,7 @@ int ext4_resize_begin(struct super_block *sb)
|
||||
* because the user tools have no way of handling this. Probably a
|
||||
* bad time to do it anyways.
|
||||
*/
|
||||
- if (EXT4_SB(sb)->s_sbh->b_blocknr !=
|
||||
+ if (EXT4_B2C(sbi, sbi->s_sbh->b_blocknr) !=
|
||||
le32_to_cpu(EXT4_SB(sb)->s_es->s_first_data_block)) {
|
||||
ext4_warning(sb, "won't resize using backup superblock at %llu",
|
||||
(unsigned long long)EXT4_SB(sb)->s_sbh->b_blocknr);
|
||||
@@ -1954,6 +1955,26 @@ retry:
|
||||
}
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * Make sure the last group has enough space so that it's
|
||||
+ * guaranteed to have enough space for all metadata blocks
|
||||
+ * that it might need to hold. (We might not need to store
|
||||
+ * the inode table blocks in the last block group, but there
|
||||
+ * will be cases where this might be needed.)
|
||||
+ */
|
||||
+ if ((ext4_group_first_block_no(sb, n_group) +
|
||||
+ ext4_group_overhead_blocks(sb, n_group) + 2 +
|
||||
+ sbi->s_itb_per_group + sbi->s_cluster_ratio) >= n_blocks_count) {
|
||||
+ n_blocks_count = ext4_group_first_block_no(sb, n_group);
|
||||
+ n_group--;
|
||||
+ n_blocks_count_retry = 0;
|
||||
+ if (resize_inode) {
|
||||
+ iput(resize_inode);
|
||||
+ resize_inode = NULL;
|
||||
+ }
|
||||
+ goto retry;
|
||||
+ }
|
||||
+
|
||||
/* extend the last group */
|
||||
if (n_group == o_group)
|
||||
add = n_blocks_count - o_blocks_count;
|
||||
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
|
||||
index 8d18f6142da5..a3d905abbaa9 100644
|
||||
--- a/fs/ext4/super.c
|
||||
+++ b/fs/ext4/super.c
|
||||
@@ -4024,11 +4024,13 @@ no_journal:
|
||||
block = ext4_count_free_clusters(sb);
|
||||
ext4_free_blocks_count_set(sbi->s_es,
|
||||
EXT4_C2B(sbi, block));
|
||||
+ ext4_superblock_csum_set(sb);
|
||||
err = percpu_counter_init(&sbi->s_freeclusters_counter, block,
|
||||
GFP_KERNEL);
|
||||
if (!err) {
|
||||
unsigned long freei = ext4_count_free_inodes(sb);
|
||||
sbi->s_es->s_free_inodes_count = cpu_to_le32(freei);
|
||||
+ ext4_superblock_csum_set(sb);
|
||||
err = percpu_counter_init(&sbi->s_freeinodes_counter, freei,
|
||||
GFP_KERNEL);
|
||||
}
|
||||
diff --git a/fs/ocfs2/buffer_head_io.c b/fs/ocfs2/buffer_head_io.c
|
||||
index fe50ded1b4ce..272269f1c310 100644
|
||||
--- a/fs/ocfs2/buffer_head_io.c
|
||||
+++ b/fs/ocfs2/buffer_head_io.c
|
||||
@@ -336,6 +336,7 @@ int ocfs2_read_blocks(struct ocfs2_caching_info *ci, u64 block, int nr,
|
||||
* for this bh as it's not marked locally
|
||||
* uptodate. */
|
||||
status = -EIO;
|
||||
+ clear_buffer_needs_validate(bh);
|
||||
put_bh(bh);
|
||||
bhs[i] = NULL;
|
||||
continue;
|
||||
diff --git a/include/net/nfc/hci.h b/include/net/nfc/hci.h
|
||||
index 316694dafa5b..008f466d1da7 100644
|
||||
--- a/include/net/nfc/hci.h
|
||||
+++ b/include/net/nfc/hci.h
|
||||
@@ -87,7 +87,7 @@ struct nfc_hci_pipe {
|
||||
* According to specification 102 622 chapter 4.4 Pipes,
|
||||
* the pipe identifier is 7 bits long.
|
||||
*/
|
||||
-#define NFC_HCI_MAX_PIPES 127
|
||||
+#define NFC_HCI_MAX_PIPES 128
|
||||
struct nfc_hci_init_data {
|
||||
u8 gate_count;
|
||||
struct nfc_hci_gate gates[NFC_HCI_MAX_CUSTOM_GATES];
|
||||
diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
|
||||
index fdaa88f38aec..74b20e3ab8c6 100644
|
||||
--- a/kernel/trace/ring_buffer.c
|
||||
+++ b/kernel/trace/ring_buffer.c
|
||||
@@ -1513,6 +1513,8 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned long nr_pages)
|
||||
tmp_iter_page = first_page;
|
||||
|
||||
do {
|
||||
+ cond_resched();
|
||||
+
|
||||
to_remove_page = tmp_iter_page;
|
||||
rb_inc_page(cpu_buffer, &tmp_iter_page);
|
||||
|
||||
diff --git a/mm/shmem.c b/mm/shmem.c
|
||||
index 1b11ccc0a3b7..8e506a45a6ef 100644
|
||||
--- a/mm/shmem.c
|
||||
+++ b/mm/shmem.c
|
||||
@@ -1464,6 +1464,8 @@ static struct inode *shmem_get_inode(struct super_block *sb, const struct inode
|
||||
mpol_shared_policy_init(&info->policy, NULL);
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ lockdep_annotate_inode_mutex_key(inode);
|
||||
} else
|
||||
shmem_free_inode(sb);
|
||||
return inode;
|
||||
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
|
||||
index f60b93627876..78dc184072e8 100644
|
||||
--- a/net/core/neighbour.c
|
||||
+++ b/net/core/neighbour.c
|
||||
@@ -1140,6 +1140,12 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
|
||||
lladdr = neigh->ha;
|
||||
}
|
||||
|
||||
+ /* Update confirmed timestamp for neighbour entry after we
|
||||
+ * received ARP packet even if it doesn't change IP to MAC binding.
|
||||
+ */
|
||||
+ if (new & NUD_CONNECTED)
|
||||
+ neigh->confirmed = jiffies;
|
||||
+
|
||||
/* If entry was valid and address is not changed,
|
||||
do not change entry state, if new one is STALE.
|
||||
*/
|
||||
@@ -1163,15 +1169,12 @@ int neigh_update(struct neighbour *neigh, const u8 *lladdr, u8 new,
|
||||
}
|
||||
}
|
||||
|
||||
- /* Update timestamps only once we know we will make a change to the
|
||||
+ /* Update timestamp only once we know we will make a change to the
|
||||
* neighbour entry. Otherwise we risk to move the locktime window with
|
||||
* noop updates and ignore relevant ARP updates.
|
||||
*/
|
||||
- if (new != old || lladdr != neigh->ha) {
|
||||
- if (new & NUD_CONNECTED)
|
||||
- neigh->confirmed = jiffies;
|
||||
+ if (new != old || lladdr != neigh->ha)
|
||||
neigh->updated = jiffies;
|
||||
- }
|
||||
|
||||
if (new != old) {
|
||||
neigh_del_timer(neigh);
|
||||
diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
|
||||
index 967a47ff78a4..b12721ecb0b6 100644
|
||||
--- a/net/ipv4/af_inet.c
|
||||
+++ b/net/ipv4/af_inet.c
|
||||
@@ -1280,6 +1280,7 @@ static struct sk_buff *inet_gso_segment(struct sk_buff *skb,
|
||||
if (encap)
|
||||
skb_reset_inner_headers(skb);
|
||||
skb->network_header = (u8 *)iph - skb->head;
|
||||
+ skb_reset_mac_len(skb);
|
||||
} while ((skb = skb->next));
|
||||
|
||||
out:
|
||||
diff --git a/net/ipv6/ip6_offload.c b/net/ipv6/ip6_offload.c
|
||||
index 9e2ea4ae840d..244b9fec9d4d 100644
|
||||
--- a/net/ipv6/ip6_offload.c
|
||||
+++ b/net/ipv6/ip6_offload.c
|
||||
@@ -118,6 +118,7 @@ static struct sk_buff *ipv6_gso_segment(struct sk_buff *skb,
|
||||
ipv6h = (struct ipv6hdr *)(skb_mac_header(skb) + nhoff);
|
||||
ipv6h->payload_len = htons(skb->len - nhoff - sizeof(*ipv6h));
|
||||
skb->network_header = (u8 *)ipv6h - skb->head;
|
||||
+ skb_reset_mac_len(skb);
|
||||
|
||||
if (udpfrag) {
|
||||
int err = ip6_find_1stfragopt(skb, &prevhdr);
|
||||
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
|
||||
index 0feede45bd28..530b62fd6b64 100644
|
||||
--- a/net/ipv6/ip6_output.c
|
||||
+++ b/net/ipv6/ip6_output.c
|
||||
@@ -193,12 +193,10 @@ int ip6_xmit(const struct sock *sk, struct sk_buff *skb, struct flowi6 *fl6,
|
||||
kfree_skb(skb);
|
||||
return -ENOBUFS;
|
||||
}
|
||||
+ if (skb->sk)
|
||||
+ skb_set_owner_w(skb2, skb->sk);
|
||||
consume_skb(skb);
|
||||
skb = skb2;
|
||||
- /* skb_set_owner_w() changes sk->sk_wmem_alloc atomically,
|
||||
- * it is safe to call in our context (socket lock not held)
|
||||
- */
|
||||
- skb_set_owner_w(skb, (struct sock *)sk);
|
||||
}
|
||||
if (opt->opt_flen)
|
||||
ipv6_push_frag_opts(skb, opt, &proto);
|
||||
diff --git a/sound/firewire/bebob/bebob_maudio.c b/sound/firewire/bebob/bebob_maudio.c
|
||||
index 07e5abdbceb5..0a576ccca3dc 100644
|
||||
--- a/sound/firewire/bebob/bebob_maudio.c
|
||||
+++ b/sound/firewire/bebob/bebob_maudio.c
|
||||
@@ -96,17 +96,13 @@ int snd_bebob_maudio_load_firmware(struct fw_unit *unit)
|
||||
struct fw_device *device = fw_parent_device(unit);
|
||||
int err, rcode;
|
||||
u64 date;
|
||||
- __le32 cues[3] = {
|
||||
- cpu_to_le32(MAUDIO_BOOTLOADER_CUE1),
|
||||
- cpu_to_le32(MAUDIO_BOOTLOADER_CUE2),
|
||||
- cpu_to_le32(MAUDIO_BOOTLOADER_CUE3)
|
||||
- };
|
||||
+ __le32 *cues;
|
||||
|
||||
/* check date of software used to build */
|
||||
err = snd_bebob_read_block(unit, INFO_OFFSET_SW_DATE,
|
||||
&date, sizeof(u64));
|
||||
if (err < 0)
|
||||
- goto end;
|
||||
+ return err;
|
||||
/*
|
||||
* firmware version 5058 or later has date later than "20070401", but
|
||||
* 'date' is not null-terminated.
|
||||
@@ -114,20 +110,28 @@ int snd_bebob_maudio_load_firmware(struct fw_unit *unit)
|
||||
if (date < 0x3230303730343031LL) {
|
||||
dev_err(&unit->device,
|
||||
"Use firmware version 5058 or later\n");
|
||||
- err = -ENOSYS;
|
||||
- goto end;
|
||||
+ return -ENXIO;
|
||||
}
|
||||
|
||||
+ cues = kmalloc_array(3, sizeof(*cues), GFP_KERNEL);
|
||||
+ if (!cues)
|
||||
+ return -ENOMEM;
|
||||
+
|
||||
+ cues[0] = cpu_to_le32(MAUDIO_BOOTLOADER_CUE1);
|
||||
+ cues[1] = cpu_to_le32(MAUDIO_BOOTLOADER_CUE2);
|
||||
+ cues[2] = cpu_to_le32(MAUDIO_BOOTLOADER_CUE3);
|
||||
+
|
||||
rcode = fw_run_transaction(device->card, TCODE_WRITE_BLOCK_REQUEST,
|
||||
device->node_id, device->generation,
|
||||
device->max_speed, BEBOB_ADDR_REG_REQ,
|
||||
- cues, sizeof(cues));
|
||||
+ cues, 3 * sizeof(*cues));
|
||||
+ kfree(cues);
|
||||
if (rcode != RCODE_COMPLETE) {
|
||||
dev_err(&unit->device,
|
||||
"Failed to send a cue to load firmware\n");
|
||||
err = -EIO;
|
||||
}
|
||||
-end:
|
||||
+
|
||||
return err;
|
||||
}
|
||||
|
||||
diff --git a/sound/pci/emu10k1/emufx.c b/sound/pci/emu10k1/emufx.c
|
||||
index 56fc47bd6dba..50b216fc369f 100644
|
||||
--- a/sound/pci/emu10k1/emufx.c
|
||||
+++ b/sound/pci/emu10k1/emufx.c
|
||||
@@ -2520,7 +2520,7 @@ static int snd_emu10k1_fx8010_ioctl(struct snd_hwdep * hw, struct file *file, un
|
||||
emu->support_tlv = 1;
|
||||
return put_user(SNDRV_EMU10K1_VERSION, (int __user *)argp);
|
||||
case SNDRV_EMU10K1_IOCTL_INFO:
|
||||
- info = kmalloc(sizeof(*info), GFP_KERNEL);
|
||||
+ info = kzalloc(sizeof(*info), GFP_KERNEL);
|
||||
if (!info)
|
||||
return -ENOMEM;
|
||||
snd_emu10k1_fx8010_info(emu, info);
|
||||
diff --git a/sound/soc/codecs/cs4265.c b/sound/soc/codecs/cs4265.c
|
||||
index 55db19ddc5ff..93b02be3a90e 100644
|
||||
--- a/sound/soc/codecs/cs4265.c
|
||||
+++ b/sound/soc/codecs/cs4265.c
|
||||
@@ -157,8 +157,8 @@ static const struct snd_kcontrol_new cs4265_snd_controls[] = {
|
||||
SOC_SINGLE("Validity Bit Control Switch", CS4265_SPDIF_CTL2,
|
||||
3, 1, 0),
|
||||
SOC_ENUM("SPDIF Mono/Stereo", spdif_mono_stereo_enum),
|
||||
- SOC_SINGLE("MMTLR Data Switch", 0,
|
||||
- 1, 1, 0),
|
||||
+ SOC_SINGLE("MMTLR Data Switch", CS4265_SPDIF_CTL2,
|
||||
+ 0, 1, 0),
|
||||
SOC_ENUM("Mono Channel Select", spdif_mono_select_enum),
|
||||
SND_SOC_BYTES("C Data Buffer", CS4265_C_DATA_BUFF, 24),
|
||||
};
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -1030,9 +1030,9 @@ index 93543e176829..8f40e121f7d4 100644
|
|||
static const struct pci_device_id rtl8169_pci_tbl[] = {
|
||||
+ { PCI_VDEVICE(REALTEK, 0x2502), RTL_CFG_1 },
|
||||
+ { PCI_VDEVICE(REALTEK, 0x2600), RTL_CFG_1 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x0000), 0, 0, RTL_CFG_1 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8129), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8136), 0, 0, RTL_CFG_2 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8161), 0, 0, RTL_CFG_1 },
|
||||
diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
|
||||
index f96f7b865267..7c1defaef3f5 100644
|
||||
--- a/drivers/platform/x86/asus-wmi.c
|
||||
|
|
|
@ -893,31 +893,6 @@ index 141651b0c766..9ffe60702299 100644
|
|||
shrink_dentry_list(&dispose);
|
||||
cond_resched();
|
||||
} while (list_lru_count(&sb->s_dentry_lru) > 0);
|
||||
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
|
||||
index 3685fea62333..582373849332 100644
|
||||
--- a/fs/f2fs/node.c
|
||||
+++ b/fs/f2fs/node.c
|
||||
@@ -590,6 +590,7 @@ static void truncate_node(struct dnode_of_data *dn)
|
||||
{
|
||||
struct f2fs_sb_info *sbi = F2FS_I_SB(dn->inode);
|
||||
struct node_info ni;
|
||||
+ pgoff_t index;
|
||||
|
||||
get_node_info(sbi, dn->nid, &ni);
|
||||
if (dn->inode->i_blocks == 0) {
|
||||
@@ -613,10 +614,11 @@ invalidate:
|
||||
clear_node_page_dirty(dn->node_page);
|
||||
set_sbi_flag(sbi, SBI_IS_DIRTY);
|
||||
|
||||
+ index = dn->node_page->index;
|
||||
f2fs_put_page(dn->node_page, 1);
|
||||
|
||||
invalidate_mapping_pages(NODE_MAPPING(sbi),
|
||||
- dn->node_page->index, dn->node_page->index);
|
||||
+ index, index);
|
||||
|
||||
dn->node_page = NULL;
|
||||
trace_f2fs_truncate_node(dn->inode, dn->nid, ni.blk_addr);
|
||||
diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
|
||||
index 763fe7737065..ef24894edecc 100644
|
||||
--- a/fs/gfs2/rgrp.c
|
||||
|
|
|
@ -867,31 +867,19 @@ index 845fa426fa0d..80192698df87 100644
|
|||
}
|
||||
}
|
||||
|
||||
- if ((temp & PORT_PLC) && (temp & PORT_PLS_MASK) == XDEV_U0 &&
|
||||
- DEV_SUPERSPEED_ANY(temp)) {
|
||||
+ if ((temp & PORT_PLC) &&
|
||||
+ DEV_SUPERSPEED_ANY(temp) &&
|
||||
+ ((temp & PORT_PLS_MASK) == XDEV_U0 ||
|
||||
+ (temp & PORT_PLS_MASK) == XDEV_U1 ||
|
||||
+ (temp & PORT_PLS_MASK) == XDEV_U2)) {
|
||||
- if ((portsc & PORT_PLC) && (portsc & PORT_PLS_MASK) == XDEV_U0 &&
|
||||
- DEV_SUPERSPEED_ANY(portsc)) {
|
||||
+ if ((portsc & PORT_PLC) &&
|
||||
+ DEV_SUPERSPEED_ANY(portsc) &&
|
||||
+ ((portsc & PORT_PLS_MASK) == XDEV_U0 ||
|
||||
+ (portsc & PORT_PLS_MASK) == XDEV_U1 ||
|
||||
+ (portsc & PORT_PLS_MASK) == XDEV_U2)) {
|
||||
xhci_dbg(xhci, "resume SS port %d finished\n", port_id);
|
||||
- /* We've just brought the device into U0 through either the
|
||||
+ /* We've just brought the device into U0/1/2 through either the
|
||||
* Resume state after a device remote wakeup, or through the
|
||||
* U3Exit state after a host-initiated resume. If it's a device
|
||||
* initiated remote wake, don't pass up the link state change,
|
||||
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
|
||||
index 0635cea42e6f..b57bee70cdef 100644
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -309,6 +309,7 @@ struct xhci_op_regs {
|
||||
*/
|
||||
#define PORT_PLS_MASK (0xf << 5)
|
||||
#define XDEV_U0 (0x0 << 5)
|
||||
+#define XDEV_U1 (0x1 << 5)
|
||||
#define XDEV_U2 (0x2 << 5)
|
||||
#define XDEV_U3 (0x3 << 5)
|
||||
#define XDEV_INACTIVE (0x6 << 5)
|
||||
diff --git a/drivers/usb/renesas_usbhs/mod_gadget.c b/drivers/usb/renesas_usbhs/mod_gadget.c
|
||||
index 8647d2c2a8c4..c5553028e616 100644
|
||||
--- a/drivers/usb/renesas_usbhs/mod_gadget.c
|
||||
|
|
|
@ -32,15 +32,6 @@ index 35be7983ef2d..ee0a50b871b9 100644
|
|||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
@@ -610,7 +610,7 @@ all: vmlinux
|
||||
ifeq ($(cc-name),clang)
|
||||
ifneq ($(CROSS_COMPILE),)
|
||||
CLANG_TARGET := --target=$(notdir $(CROSS_COMPILE:%-=%))
|
||||
-GCC_TOOLCHAIN_DIR := $(dir $(shell which $(LD)))
|
||||
+GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
|
||||
CLANG_PREFIX := --prefix=$(GCC_TOOLCHAIN_DIR)
|
||||
GCC_TOOLCHAIN := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
|
||||
endif
|
||||
@@ -639,7 +639,7 @@ KBUILD_CFLAGS += $(call cc-disable-warning, int-in-bool-context)
|
||||
KBUILD_CFLAGS += $(call cc-disable-warning, attribute-alias)
|
||||
|
||||
|
@ -2993,63 +2984,6 @@ index 4bd12247a9be..5223eb25bf59 100644
|
|||
+ ext4_blocks_count(es));
|
||||
return err;
|
||||
}
|
||||
diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c
|
||||
index dbd7adff8b5a..bd0dfaecfac3 100644
|
||||
--- a/fs/f2fs/super.c
|
||||
+++ b/fs/f2fs/super.c
|
||||
@@ -1143,7 +1143,7 @@ int sanity_check_ckpt(struct f2fs_sb_info *sbi)
|
||||
unsigned int sit_segs, nat_segs;
|
||||
unsigned int sit_bitmap_size, nat_bitmap_size;
|
||||
unsigned int log_blocks_per_seg;
|
||||
- int i;
|
||||
+ int i, j;
|
||||
|
||||
total = le32_to_cpu(raw_super->segment_count);
|
||||
fsmeta = le32_to_cpu(raw_super->segment_count_ckpt);
|
||||
@@ -1184,11 +1184,43 @@ int sanity_check_ckpt(struct f2fs_sb_info *sbi)
|
||||
if (le32_to_cpu(ckpt->cur_node_segno[i]) >= main_segs ||
|
||||
le16_to_cpu(ckpt->cur_node_blkoff[i]) >= blocks_per_seg)
|
||||
return 1;
|
||||
+ for (j = i + 1; j < NR_CURSEG_NODE_TYPE; j++) {
|
||||
+ if (le32_to_cpu(ckpt->cur_node_segno[i]) ==
|
||||
+ le32_to_cpu(ckpt->cur_node_segno[j])) {
|
||||
+ f2fs_msg(sbi->sb, KERN_ERR,
|
||||
+ "Node segment (%u, %u) has the same "
|
||||
+ "segno: %u", i, j,
|
||||
+ le32_to_cpu(ckpt->cur_node_segno[i]));
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
for (i = 0; i < NR_CURSEG_DATA_TYPE; i++) {
|
||||
if (le32_to_cpu(ckpt->cur_data_segno[i]) >= main_segs ||
|
||||
le16_to_cpu(ckpt->cur_data_blkoff[i]) >= blocks_per_seg)
|
||||
return 1;
|
||||
+ for (j = i + 1; j < NR_CURSEG_DATA_TYPE; j++) {
|
||||
+ if (le32_to_cpu(ckpt->cur_data_segno[i]) ==
|
||||
+ le32_to_cpu(ckpt->cur_data_segno[j])) {
|
||||
+ f2fs_msg(sbi->sb, KERN_ERR,
|
||||
+ "Data segment (%u, %u) has the same "
|
||||
+ "segno: %u", i, j,
|
||||
+ le32_to_cpu(ckpt->cur_data_segno[i]));
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ for (i = 0; i < NR_CURSEG_NODE_TYPE; i++) {
|
||||
+ for (j = i; j < NR_CURSEG_DATA_TYPE; j++) {
|
||||
+ if (le32_to_cpu(ckpt->cur_node_segno[i]) ==
|
||||
+ le32_to_cpu(ckpt->cur_data_segno[j])) {
|
||||
+ f2fs_msg(sbi->sb, KERN_ERR,
|
||||
+ "Data segment (%u) and Data segment (%u)"
|
||||
+ " has the same segno: %u", i, j,
|
||||
+ le32_to_cpu(ckpt->cur_node_segno[i]));
|
||||
+ return 1;
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
sit_bitmap_size = le32_to_cpu(ckpt->sit_ver_bitmap_bytesize);
|
||||
diff --git a/fs/f2fs/trace.c b/fs/f2fs/trace.c
|
||||
index 145fb659ad44..8f327fa7ae47 100644
|
||||
--- a/fs/f2fs/trace.c
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -1,13 +0,0 @@
|
|||
diff --git a/include/linux/rockchip/rockchip_sip.h b/include/linux/rockchip/rockchip_sip.h
|
||||
index 3258eeda..2f25be81 100644
|
||||
--- a/include/linux/rockchip/rockchip_sip.h
|
||||
+++ b/include/linux/rockchip/rockchip_sip.h
|
||||
@@ -180,7 +180,7 @@ sip_smc_vpu_reset(u32 arg0, u32 arg1, u32 arg2)
|
||||
return tmp;
|
||||
}
|
||||
|
||||
-struct arm_smccc_res sip_smc_lastlog_request(void)
|
||||
+static inline struct arm_smccc_res sip_smc_lastlog_request(void)
|
||||
{
|
||||
struct arm_smccc_res tmp = {0};
|
||||
return tmp;
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
|
||||
index 2d836893..d1fcd48b 100644
|
||||
--- a/drivers/net/usb/r8152.c
|
||||
+++ b/drivers/net/usb/r8152.c
|
||||
@@ -4157,6 +4157,7 @@ static void r8152b_get_version(struct r8152 *tp)
|
||||
tp->mii.supports_gmii = 1;
|
||||
break;
|
||||
case 0x5c30:
|
||||
+ case 0x6010:
|
||||
tp->version = RTL_VER_06;
|
||||
tp->mii.supports_gmii = 1;
|
||||
break;
|
|
@ -8,11 +8,11 @@ index 82514d1b..fddf3d7f 100644
|
|||
};
|
||||
+ opp-1512000000 {
|
||||
+ opp-hz = /bits/ 64 <1512000000>;
|
||||
+ opp-microvolt = <1200000>;
|
||||
+ opp-microvolt-L0 = <1200000>;
|
||||
+ opp-microvolt-L1 = <1175000>;
|
||||
+ opp-microvolt-L2 = <1150000>;
|
||||
+ opp-microvolt-L3 = <1125000>;
|
||||
+ opp-microvolt = <1200000 1200000 1200000>;
|
||||
+ opp-microvolt-L0 = <1200000 1200000 1200000>;
|
||||
+ opp-microvolt-L1 = <1175000 1175000 1175000>;
|
||||
+ opp-microvolt-L2 = <1150000 1150000 1150000>;
|
||||
+ opp-microvolt-L3 = <1125000 1125000 1125000>;
|
||||
+ clock-latency-ns = <40000>;
|
||||
+ };
|
||||
};
|
||||
|
@ -24,11 +24,11 @@ index 82514d1b..fddf3d7f 100644
|
|||
};
|
||||
+ opp-1992000000 {
|
||||
+ opp-hz = /bits/ 64 <1992000000>;
|
||||
+ opp-microvolt = <1300000>;
|
||||
+ opp-microvolt-L0 = <1300000>;
|
||||
+ opp-microvolt-L1 = <1275000>;
|
||||
+ opp-microvolt-L2 = <1250000>;
|
||||
+ opp-microvolt-L3 = <1225000>;
|
||||
+ opp-microvolt = <1300000 1300000 1300000>;
|
||||
+ opp-microvolt-L0 = <1300000 1300000 1300000>;
|
||||
+ opp-microvolt-L1 = <1275000 1275000 1275000>;
|
||||
+ opp-microvolt-L2 = <1250000 1250000 1250000>;
|
||||
+ opp-microvolt-L3 = <1225000 1225000 1225000>;
|
||||
+ clock-latency-ns = <40000>;
|
||||
+ };
|
||||
};
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
diff --git a/drivers/net/wireless/rockchip_wlan/Kconfig b/drivers/net/wireless/rockchip_wlan/Kconfig
|
||||
index 6bfc72b9..d1cf9f5f 100644
|
||||
--- a/drivers/net/wireless/rockchip_wlan/Kconfig
|
||||
+++ b/drivers/net/wireless/rockchip_wlan/Kconfig
|
||||
@@ -35,7 +35,6 @@ menuconfig RTL_WIRELESS_SOLUTION
|
||||
bool "Realtek Wireless Device Driver Support"
|
||||
default y
|
||||
|
||||
-source "drivers/net/wireless/rockchip_wlan/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/rockchip_wlan/rtl8188fu/Kconfig"
|
||||
source "drivers/net/wireless/rockchip_wlan/rtl8189es/Kconfig"
|
||||
source "drivers/net/wireless/rockchip_wlan/rtl8189fs/Kconfig"
|
||||
diff --git a/drivers/net/wireless/rockchip_wlan/Makefile b/drivers/net/wireless/rockchip_wlan/Makefile
|
||||
index fb0e47b2..10173fe6 100644
|
||||
--- a/drivers/net/wireless/rockchip_wlan/Makefile
|
||||
+++ b/drivers/net/wireless/rockchip_wlan/Makefile
|
||||
@@ -1,6 +1,5 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
obj-$(CONFIG_AP6XXX) += rkwifi/
|
||||
-obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_RTL8188FU) += rtl8188fu/
|
||||
obj-$(CONFIG_RTL8189ES) += rtl8189es/
|
||||
obj-$(CONFIG_RTL8189FS) += rtl8189fs/
|
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -266,6 +266,7 @@ config MWL8K
|
||||
will be called mwl8k. If unsure, say N.
|
||||
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/b43/Kconfig"
|
||||
source "drivers/net/wireless/b43legacy/Kconfig"
|
||||
source "drivers/net/wireless/brcm80211/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -20,6 +20,7 @@ obj-$(CONFIG_PRISM54) += prism54/
|
||||
|
||||
obj-$(CONFIG_HOSTAP) += hostap/
|
||||
obj-$(CONFIG_B43) += b43/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_B43LEGACY) += b43legacy/
|
||||
obj-$(CONFIG_ZD1211RW) += zd1211rw/
|
||||
obj-$(CONFIG_WLAN) += realtek/
|
251
patch/kernel/rockchip-default/04-patch-4.4.181-182.patch
Normal file
251
patch/kernel/rockchip-default/04-patch-4.4.181-182.patch
Normal file
|
@ -0,0 +1,251 @@
|
|||
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
|
||||
index 709d24b4b533..21ad4f3cece8 100644
|
||||
--- a/Documentation/networking/ip-sysctl.txt
|
||||
+++ b/Documentation/networking/ip-sysctl.txt
|
||||
@@ -220,6 +220,14 @@ tcp_base_mss - INTEGER
|
||||
Path MTU discovery (MTU probing). If MTU probing is enabled,
|
||||
this is the initial MSS used by the connection.
|
||||
|
||||
+tcp_min_snd_mss - INTEGER
|
||||
+ TCP SYN and SYNACK messages usually advertise an ADVMSS option,
|
||||
+ as described in RFC 1122 and RFC 6691.
|
||||
+ If this ADVMSS option is smaller than tcp_min_snd_mss,
|
||||
+ it is silently capped to tcp_min_snd_mss.
|
||||
+
|
||||
+ Default : 48 (at least 8 bytes of payload per segment)
|
||||
+
|
||||
tcp_congestion_control - STRING
|
||||
Set the congestion control algorithm to be used for new
|
||||
connections. The algorithm "reno" is always available, but
|
||||
diff --git a/Makefile b/Makefile
|
||||
index b33f3ecf84fc..fcfede5e39de 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 181
|
||||
+SUBLEVEL = 182
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
|
||||
index 747404dbe506..085da1707cea 100644
|
||||
--- a/include/linux/tcp.h
|
||||
+++ b/include/linux/tcp.h
|
||||
@@ -419,4 +419,7 @@ static inline void tcp_saved_syn_free(struct tcp_sock *tp)
|
||||
tp->saved_syn = NULL;
|
||||
}
|
||||
|
||||
+int tcp_skb_shift(struct sk_buff *to, struct sk_buff *from, int pcount,
|
||||
+ int shiftlen);
|
||||
+
|
||||
#endif /* _LINUX_TCP_H */
|
||||
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
|
||||
index c68926b4899c..61c38f87ea07 100644
|
||||
--- a/include/net/netns/ipv4.h
|
||||
+++ b/include/net/netns/ipv4.h
|
||||
@@ -88,6 +88,7 @@ struct netns_ipv4 {
|
||||
int sysctl_tcp_fwmark_accept;
|
||||
int sysctl_tcp_mtu_probing;
|
||||
int sysctl_tcp_base_mss;
|
||||
+ int sysctl_tcp_min_snd_mss;
|
||||
int sysctl_tcp_probe_threshold;
|
||||
u32 sysctl_tcp_probe_interval;
|
||||
|
||||
diff --git a/include/net/tcp.h b/include/net/tcp.h
|
||||
index 14ec97309581..bf8a0dae977a 100644
|
||||
--- a/include/net/tcp.h
|
||||
+++ b/include/net/tcp.h
|
||||
@@ -54,6 +54,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo);
|
||||
|
||||
#define MAX_TCP_HEADER (128 + MAX_HEADER)
|
||||
#define MAX_TCP_OPTION_SPACE 40
|
||||
+#define TCP_MIN_SND_MSS 48
|
||||
+#define TCP_MIN_GSO_SIZE (TCP_MIN_SND_MSS - MAX_TCP_OPTION_SPACE)
|
||||
|
||||
/*
|
||||
* Never offer a window over 32767 without using window scaling. Some
|
||||
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
|
||||
index 9de808ebce05..422183f396d5 100644
|
||||
--- a/include/uapi/linux/snmp.h
|
||||
+++ b/include/uapi/linux/snmp.h
|
||||
@@ -281,6 +281,7 @@ enum
|
||||
LINUX_MIB_TCPKEEPALIVE, /* TCPKeepAlive */
|
||||
LINUX_MIB_TCPMTUPFAIL, /* TCPMTUPFail */
|
||||
LINUX_MIB_TCPMTUPSUCCESS, /* TCPMTUPSuccess */
|
||||
+ LINUX_MIB_TCPWQUEUETOOBIG, /* TCPWqueueTooBig */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
|
||||
index b001ad668108..555586fc7840 100644
|
||||
--- a/net/ipv4/proc.c
|
||||
+++ b/net/ipv4/proc.c
|
||||
@@ -303,6 +303,7 @@ static const struct snmp_mib snmp4_net_list[] = {
|
||||
SNMP_MIB_ITEM("TCPKeepAlive", LINUX_MIB_TCPKEEPALIVE),
|
||||
SNMP_MIB_ITEM("TCPMTUPFail", LINUX_MIB_TCPMTUPFAIL),
|
||||
SNMP_MIB_ITEM("TCPMTUPSuccess", LINUX_MIB_TCPMTUPSUCCESS),
|
||||
+ SNMP_MIB_ITEM("TCPWqueueTooBig", LINUX_MIB_TCPWQUEUETOOBIG),
|
||||
SNMP_MIB_SENTINEL
|
||||
};
|
||||
|
||||
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
|
||||
index 167ca0fddf9e..6413e36d639d 100644
|
||||
--- a/net/ipv4/sysctl_net_ipv4.c
|
||||
+++ b/net/ipv4/sysctl_net_ipv4.c
|
||||
@@ -36,6 +36,8 @@ static int ip_local_port_range_min[] = { 1, 1 };
|
||||
static int ip_local_port_range_max[] = { 65535, 65535 };
|
||||
static int tcp_adv_win_scale_min = -31;
|
||||
static int tcp_adv_win_scale_max = 31;
|
||||
+static int tcp_min_snd_mss_min = TCP_MIN_SND_MSS;
|
||||
+static int tcp_min_snd_mss_max = 65535;
|
||||
static int ip_ttl_min = 1;
|
||||
static int ip_ttl_max = 255;
|
||||
static int tcp_syn_retries_min = 1;
|
||||
@@ -941,6 +943,15 @@ static struct ctl_table ipv4_net_table[] = {
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
+ {
|
||||
+ .procname = "tcp_min_snd_mss",
|
||||
+ .data = &init_net.ipv4.sysctl_tcp_min_snd_mss,
|
||||
+ .maxlen = sizeof(int),
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = proc_dointvec_minmax,
|
||||
+ .extra1 = &tcp_min_snd_mss_min,
|
||||
+ .extra2 = &tcp_min_snd_mss_max,
|
||||
+ },
|
||||
{
|
||||
.procname = "tcp_probe_threshold",
|
||||
.data = &init_net.ipv4.sysctl_tcp_probe_threshold,
|
||||
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
|
||||
index f3a4d2dcbf7a..303be2b76855 100644
|
||||
--- a/net/ipv4/tcp.c
|
||||
+++ b/net/ipv4/tcp.c
|
||||
@@ -3144,6 +3144,7 @@ void __init tcp_init(void)
|
||||
int max_rshare, max_wshare, cnt;
|
||||
unsigned int i;
|
||||
|
||||
+ BUILD_BUG_ON(TCP_MIN_SND_MSS <= MAX_TCP_OPTION_SPACE);
|
||||
sock_skb_cb_check_size(sizeof(struct tcp_skb_cb));
|
||||
|
||||
percpu_counter_init(&tcp_sockets_allocated, 0, GFP_KERNEL);
|
||||
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
|
||||
index 44a3aa7a41e2..30c5500b0899 100644
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -1275,7 +1275,7 @@ static bool tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
|
||||
TCP_SKB_CB(skb)->seq += shifted;
|
||||
|
||||
tcp_skb_pcount_add(prev, pcount);
|
||||
- BUG_ON(tcp_skb_pcount(skb) < pcount);
|
||||
+ WARN_ON_ONCE(tcp_skb_pcount(skb) < pcount);
|
||||
tcp_skb_pcount_add(skb, -pcount);
|
||||
|
||||
/* When we're adding to gso_segs == 1, gso_size will be zero,
|
||||
@@ -1337,6 +1337,21 @@ static int skb_can_shift(const struct sk_buff *skb)
|
||||
return !skb_headlen(skb) && skb_is_nonlinear(skb);
|
||||
}
|
||||
|
||||
+int tcp_skb_shift(struct sk_buff *to, struct sk_buff *from,
|
||||
+ int pcount, int shiftlen)
|
||||
+{
|
||||
+ /* TCP min gso_size is 8 bytes (TCP_MIN_GSO_SIZE)
|
||||
+ * Since TCP_SKB_CB(skb)->tcp_gso_segs is 16 bits, we need
|
||||
+ * to make sure not storing more than 65535 * 8 bytes per skb,
|
||||
+ * even if current MSS is bigger.
|
||||
+ */
|
||||
+ if (unlikely(to->len + shiftlen >= 65535 * TCP_MIN_GSO_SIZE))
|
||||
+ return 0;
|
||||
+ if (unlikely(tcp_skb_pcount(to) + pcount > 65535))
|
||||
+ return 0;
|
||||
+ return skb_shift(to, from, shiftlen);
|
||||
+}
|
||||
+
|
||||
/* Try collapsing SACK blocks spanning across multiple skbs to a single
|
||||
* skb.
|
||||
*/
|
||||
@@ -1348,6 +1363,7 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb,
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
struct sk_buff *prev;
|
||||
int mss;
|
||||
+ int next_pcount;
|
||||
int pcount = 0;
|
||||
int len;
|
||||
int in_sack;
|
||||
@@ -1442,7 +1458,7 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb,
|
||||
if (!after(TCP_SKB_CB(skb)->seq + len, tp->snd_una))
|
||||
goto fallback;
|
||||
|
||||
- if (!skb_shift(prev, skb, len))
|
||||
+ if (!tcp_skb_shift(prev, skb, pcount, len))
|
||||
goto fallback;
|
||||
if (!tcp_shifted_skb(sk, skb, state, pcount, len, mss, dup_sack))
|
||||
goto out;
|
||||
@@ -1461,11 +1477,11 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb,
|
||||
goto out;
|
||||
|
||||
len = skb->len;
|
||||
- if (skb_shift(prev, skb, len)) {
|
||||
- pcount += tcp_skb_pcount(skb);
|
||||
- tcp_shifted_skb(sk, skb, state, tcp_skb_pcount(skb), len, mss, 0);
|
||||
+ next_pcount = tcp_skb_pcount(skb);
|
||||
+ if (tcp_skb_shift(prev, skb, next_pcount, len)) {
|
||||
+ pcount += next_pcount;
|
||||
+ tcp_shifted_skb(sk, skb, state, next_pcount, len, mss, 0);
|
||||
}
|
||||
-
|
||||
out:
|
||||
state->fack_count += pcount;
|
||||
return prev;
|
||||
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
|
||||
index b3d6b8e77300..744afb4fbf84 100644
|
||||
--- a/net/ipv4/tcp_ipv4.c
|
||||
+++ b/net/ipv4/tcp_ipv4.c
|
||||
@@ -2419,6 +2419,7 @@ static int __net_init tcp_sk_init(struct net *net)
|
||||
net->ipv4.sysctl_tcp_ecn_fallback = 1;
|
||||
|
||||
net->ipv4.sysctl_tcp_base_mss = TCP_BASE_MSS;
|
||||
+ net->ipv4.sysctl_tcp_min_snd_mss = TCP_MIN_SND_MSS;
|
||||
net->ipv4.sysctl_tcp_probe_threshold = TCP_PROBE_THRESHOLD;
|
||||
net->ipv4.sysctl_tcp_probe_interval = TCP_PROBE_INTERVAL;
|
||||
|
||||
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
|
||||
index b55b8954dae5..bed83990847a 100644
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -1161,6 +1161,11 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len,
|
||||
if (nsize < 0)
|
||||
nsize = 0;
|
||||
|
||||
+ if (unlikely((sk->sk_wmem_queued >> 1) > sk->sk_sndbuf)) {
|
||||
+ NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPWQUEUETOOBIG);
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+
|
||||
if (skb_unclone(skb, gfp))
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -1327,8 +1332,7 @@ static inline int __tcp_mtu_to_mss(struct sock *sk, int pmtu)
|
||||
mss_now -= icsk->icsk_ext_hdr_len;
|
||||
|
||||
/* Then reserve room for full set of TCP options and 8 bytes of data */
|
||||
- if (mss_now < 48)
|
||||
- mss_now = 48;
|
||||
+ mss_now = max(mss_now, sock_net(sk)->ipv4.sysctl_tcp_min_snd_mss);
|
||||
return mss_now;
|
||||
}
|
||||
|
||||
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
|
||||
index 35f638cfc675..61359944acc7 100644
|
||||
--- a/net/ipv4/tcp_timer.c
|
||||
+++ b/net/ipv4/tcp_timer.c
|
||||
@@ -132,6 +132,7 @@ static void tcp_mtu_probing(struct inet_connection_sock *icsk, struct sock *sk)
|
||||
mss = tcp_mtu_to_mss(sk, icsk->icsk_mtup.search_low) >> 1;
|
||||
mss = min(net->ipv4.sysctl_tcp_base_mss, mss);
|
||||
mss = max(mss, 68 - tp->tcp_header_len);
|
||||
+ mss = max(mss, net->ipv4.sysctl_tcp_min_snd_mss);
|
||||
icsk->icsk_mtup.search_low = tcp_mss_to_mtu(sk, mss);
|
||||
tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -266,6 +266,7 @@ config MWL8K
|
||||
will be called mwl8k. If unsure, say N.
|
||||
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/b43/Kconfig"
|
||||
source "drivers/net/wireless/b43legacy/Kconfig"
|
||||
source "drivers/net/wireless/brcm80211/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -20,6 +20,7 @@ obj-$(CONFIG_PRISM54) += prism54/
|
||||
|
||||
obj-$(CONFIG_HOSTAP) += hostap/
|
||||
obj-$(CONFIG_B43) += b43/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_B43LEGACY) += b43legacy/
|
||||
obj-$(CONFIG_ZD1211RW) += zd1211rw/
|
||||
obj-$(CONFIG_WLAN) += realtek/
|
8271
patch/kernel/rockchip64-default/04-patch-4.4.180-181.patch
Normal file
8271
patch/kernel/rockchip64-default/04-patch-4.4.180-181.patch
Normal file
File diff suppressed because it is too large
Load diff
251
patch/kernel/rockchip64-default/04-patch-4.4.181-182.patch
Normal file
251
patch/kernel/rockchip64-default/04-patch-4.4.181-182.patch
Normal file
|
@ -0,0 +1,251 @@
|
|||
diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
|
||||
index 709d24b4b533..21ad4f3cece8 100644
|
||||
--- a/Documentation/networking/ip-sysctl.txt
|
||||
+++ b/Documentation/networking/ip-sysctl.txt
|
||||
@@ -220,6 +220,14 @@ tcp_base_mss - INTEGER
|
||||
Path MTU discovery (MTU probing). If MTU probing is enabled,
|
||||
this is the initial MSS used by the connection.
|
||||
|
||||
+tcp_min_snd_mss - INTEGER
|
||||
+ TCP SYN and SYNACK messages usually advertise an ADVMSS option,
|
||||
+ as described in RFC 1122 and RFC 6691.
|
||||
+ If this ADVMSS option is smaller than tcp_min_snd_mss,
|
||||
+ it is silently capped to tcp_min_snd_mss.
|
||||
+
|
||||
+ Default : 48 (at least 8 bytes of payload per segment)
|
||||
+
|
||||
tcp_congestion_control - STRING
|
||||
Set the congestion control algorithm to be used for new
|
||||
connections. The algorithm "reno" is always available, but
|
||||
diff --git a/Makefile b/Makefile
|
||||
index b33f3ecf84fc..fcfede5e39de 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 181
|
||||
+SUBLEVEL = 182
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
|
||||
index 747404dbe506..085da1707cea 100644
|
||||
--- a/include/linux/tcp.h
|
||||
+++ b/include/linux/tcp.h
|
||||
@@ -419,4 +419,7 @@ static inline void tcp_saved_syn_free(struct tcp_sock *tp)
|
||||
tp->saved_syn = NULL;
|
||||
}
|
||||
|
||||
+int tcp_skb_shift(struct sk_buff *to, struct sk_buff *from, int pcount,
|
||||
+ int shiftlen);
|
||||
+
|
||||
#endif /* _LINUX_TCP_H */
|
||||
diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
|
||||
index c68926b4899c..61c38f87ea07 100644
|
||||
--- a/include/net/netns/ipv4.h
|
||||
+++ b/include/net/netns/ipv4.h
|
||||
@@ -88,6 +88,7 @@ struct netns_ipv4 {
|
||||
int sysctl_tcp_fwmark_accept;
|
||||
int sysctl_tcp_mtu_probing;
|
||||
int sysctl_tcp_base_mss;
|
||||
+ int sysctl_tcp_min_snd_mss;
|
||||
int sysctl_tcp_probe_threshold;
|
||||
u32 sysctl_tcp_probe_interval;
|
||||
|
||||
diff --git a/include/net/tcp.h b/include/net/tcp.h
|
||||
index 14ec97309581..bf8a0dae977a 100644
|
||||
--- a/include/net/tcp.h
|
||||
+++ b/include/net/tcp.h
|
||||
@@ -54,6 +54,8 @@ void tcp_time_wait(struct sock *sk, int state, int timeo);
|
||||
|
||||
#define MAX_TCP_HEADER (128 + MAX_HEADER)
|
||||
#define MAX_TCP_OPTION_SPACE 40
|
||||
+#define TCP_MIN_SND_MSS 48
|
||||
+#define TCP_MIN_GSO_SIZE (TCP_MIN_SND_MSS - MAX_TCP_OPTION_SPACE)
|
||||
|
||||
/*
|
||||
* Never offer a window over 32767 without using window scaling. Some
|
||||
diff --git a/include/uapi/linux/snmp.h b/include/uapi/linux/snmp.h
|
||||
index 9de808ebce05..422183f396d5 100644
|
||||
--- a/include/uapi/linux/snmp.h
|
||||
+++ b/include/uapi/linux/snmp.h
|
||||
@@ -281,6 +281,7 @@ enum
|
||||
LINUX_MIB_TCPKEEPALIVE, /* TCPKeepAlive */
|
||||
LINUX_MIB_TCPMTUPFAIL, /* TCPMTUPFail */
|
||||
LINUX_MIB_TCPMTUPSUCCESS, /* TCPMTUPSuccess */
|
||||
+ LINUX_MIB_TCPWQUEUETOOBIG, /* TCPWqueueTooBig */
|
||||
__LINUX_MIB_MAX
|
||||
};
|
||||
|
||||
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
|
||||
index b001ad668108..555586fc7840 100644
|
||||
--- a/net/ipv4/proc.c
|
||||
+++ b/net/ipv4/proc.c
|
||||
@@ -303,6 +303,7 @@ static const struct snmp_mib snmp4_net_list[] = {
|
||||
SNMP_MIB_ITEM("TCPKeepAlive", LINUX_MIB_TCPKEEPALIVE),
|
||||
SNMP_MIB_ITEM("TCPMTUPFail", LINUX_MIB_TCPMTUPFAIL),
|
||||
SNMP_MIB_ITEM("TCPMTUPSuccess", LINUX_MIB_TCPMTUPSUCCESS),
|
||||
+ SNMP_MIB_ITEM("TCPWqueueTooBig", LINUX_MIB_TCPWQUEUETOOBIG),
|
||||
SNMP_MIB_SENTINEL
|
||||
};
|
||||
|
||||
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
|
||||
index 167ca0fddf9e..6413e36d639d 100644
|
||||
--- a/net/ipv4/sysctl_net_ipv4.c
|
||||
+++ b/net/ipv4/sysctl_net_ipv4.c
|
||||
@@ -36,6 +36,8 @@ static int ip_local_port_range_min[] = { 1, 1 };
|
||||
static int ip_local_port_range_max[] = { 65535, 65535 };
|
||||
static int tcp_adv_win_scale_min = -31;
|
||||
static int tcp_adv_win_scale_max = 31;
|
||||
+static int tcp_min_snd_mss_min = TCP_MIN_SND_MSS;
|
||||
+static int tcp_min_snd_mss_max = 65535;
|
||||
static int ip_ttl_min = 1;
|
||||
static int ip_ttl_max = 255;
|
||||
static int tcp_syn_retries_min = 1;
|
||||
@@ -941,6 +943,15 @@ static struct ctl_table ipv4_net_table[] = {
|
||||
.mode = 0644,
|
||||
.proc_handler = proc_dointvec,
|
||||
},
|
||||
+ {
|
||||
+ .procname = "tcp_min_snd_mss",
|
||||
+ .data = &init_net.ipv4.sysctl_tcp_min_snd_mss,
|
||||
+ .maxlen = sizeof(int),
|
||||
+ .mode = 0644,
|
||||
+ .proc_handler = proc_dointvec_minmax,
|
||||
+ .extra1 = &tcp_min_snd_mss_min,
|
||||
+ .extra2 = &tcp_min_snd_mss_max,
|
||||
+ },
|
||||
{
|
||||
.procname = "tcp_probe_threshold",
|
||||
.data = &init_net.ipv4.sysctl_tcp_probe_threshold,
|
||||
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
|
||||
index f3a4d2dcbf7a..303be2b76855 100644
|
||||
--- a/net/ipv4/tcp.c
|
||||
+++ b/net/ipv4/tcp.c
|
||||
@@ -3144,6 +3144,7 @@ void __init tcp_init(void)
|
||||
int max_rshare, max_wshare, cnt;
|
||||
unsigned int i;
|
||||
|
||||
+ BUILD_BUG_ON(TCP_MIN_SND_MSS <= MAX_TCP_OPTION_SPACE);
|
||||
sock_skb_cb_check_size(sizeof(struct tcp_skb_cb));
|
||||
|
||||
percpu_counter_init(&tcp_sockets_allocated, 0, GFP_KERNEL);
|
||||
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
|
||||
index 44a3aa7a41e2..30c5500b0899 100644
|
||||
--- a/net/ipv4/tcp_input.c
|
||||
+++ b/net/ipv4/tcp_input.c
|
||||
@@ -1275,7 +1275,7 @@ static bool tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
|
||||
TCP_SKB_CB(skb)->seq += shifted;
|
||||
|
||||
tcp_skb_pcount_add(prev, pcount);
|
||||
- BUG_ON(tcp_skb_pcount(skb) < pcount);
|
||||
+ WARN_ON_ONCE(tcp_skb_pcount(skb) < pcount);
|
||||
tcp_skb_pcount_add(skb, -pcount);
|
||||
|
||||
/* When we're adding to gso_segs == 1, gso_size will be zero,
|
||||
@@ -1337,6 +1337,21 @@ static int skb_can_shift(const struct sk_buff *skb)
|
||||
return !skb_headlen(skb) && skb_is_nonlinear(skb);
|
||||
}
|
||||
|
||||
+int tcp_skb_shift(struct sk_buff *to, struct sk_buff *from,
|
||||
+ int pcount, int shiftlen)
|
||||
+{
|
||||
+ /* TCP min gso_size is 8 bytes (TCP_MIN_GSO_SIZE)
|
||||
+ * Since TCP_SKB_CB(skb)->tcp_gso_segs is 16 bits, we need
|
||||
+ * to make sure not storing more than 65535 * 8 bytes per skb,
|
||||
+ * even if current MSS is bigger.
|
||||
+ */
|
||||
+ if (unlikely(to->len + shiftlen >= 65535 * TCP_MIN_GSO_SIZE))
|
||||
+ return 0;
|
||||
+ if (unlikely(tcp_skb_pcount(to) + pcount > 65535))
|
||||
+ return 0;
|
||||
+ return skb_shift(to, from, shiftlen);
|
||||
+}
|
||||
+
|
||||
/* Try collapsing SACK blocks spanning across multiple skbs to a single
|
||||
* skb.
|
||||
*/
|
||||
@@ -1348,6 +1363,7 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb,
|
||||
struct tcp_sock *tp = tcp_sk(sk);
|
||||
struct sk_buff *prev;
|
||||
int mss;
|
||||
+ int next_pcount;
|
||||
int pcount = 0;
|
||||
int len;
|
||||
int in_sack;
|
||||
@@ -1442,7 +1458,7 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb,
|
||||
if (!after(TCP_SKB_CB(skb)->seq + len, tp->snd_una))
|
||||
goto fallback;
|
||||
|
||||
- if (!skb_shift(prev, skb, len))
|
||||
+ if (!tcp_skb_shift(prev, skb, pcount, len))
|
||||
goto fallback;
|
||||
if (!tcp_shifted_skb(sk, skb, state, pcount, len, mss, dup_sack))
|
||||
goto out;
|
||||
@@ -1461,11 +1477,11 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb,
|
||||
goto out;
|
||||
|
||||
len = skb->len;
|
||||
- if (skb_shift(prev, skb, len)) {
|
||||
- pcount += tcp_skb_pcount(skb);
|
||||
- tcp_shifted_skb(sk, skb, state, tcp_skb_pcount(skb), len, mss, 0);
|
||||
+ next_pcount = tcp_skb_pcount(skb);
|
||||
+ if (tcp_skb_shift(prev, skb, next_pcount, len)) {
|
||||
+ pcount += next_pcount;
|
||||
+ tcp_shifted_skb(sk, skb, state, next_pcount, len, mss, 0);
|
||||
}
|
||||
-
|
||||
out:
|
||||
state->fack_count += pcount;
|
||||
return prev;
|
||||
diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
|
||||
index b3d6b8e77300..744afb4fbf84 100644
|
||||
--- a/net/ipv4/tcp_ipv4.c
|
||||
+++ b/net/ipv4/tcp_ipv4.c
|
||||
@@ -2419,6 +2419,7 @@ static int __net_init tcp_sk_init(struct net *net)
|
||||
net->ipv4.sysctl_tcp_ecn_fallback = 1;
|
||||
|
||||
net->ipv4.sysctl_tcp_base_mss = TCP_BASE_MSS;
|
||||
+ net->ipv4.sysctl_tcp_min_snd_mss = TCP_MIN_SND_MSS;
|
||||
net->ipv4.sysctl_tcp_probe_threshold = TCP_PROBE_THRESHOLD;
|
||||
net->ipv4.sysctl_tcp_probe_interval = TCP_PROBE_INTERVAL;
|
||||
|
||||
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
|
||||
index b55b8954dae5..bed83990847a 100644
|
||||
--- a/net/ipv4/tcp_output.c
|
||||
+++ b/net/ipv4/tcp_output.c
|
||||
@@ -1161,6 +1161,11 @@ int tcp_fragment(struct sock *sk, struct sk_buff *skb, u32 len,
|
||||
if (nsize < 0)
|
||||
nsize = 0;
|
||||
|
||||
+ if (unlikely((sk->sk_wmem_queued >> 1) > sk->sk_sndbuf)) {
|
||||
+ NET_INC_STATS(sock_net(sk), LINUX_MIB_TCPWQUEUETOOBIG);
|
||||
+ return -ENOMEM;
|
||||
+ }
|
||||
+
|
||||
if (skb_unclone(skb, gfp))
|
||||
return -ENOMEM;
|
||||
|
||||
@@ -1327,8 +1332,7 @@ static inline int __tcp_mtu_to_mss(struct sock *sk, int pmtu)
|
||||
mss_now -= icsk->icsk_ext_hdr_len;
|
||||
|
||||
/* Then reserve room for full set of TCP options and 8 bytes of data */
|
||||
- if (mss_now < 48)
|
||||
- mss_now = 48;
|
||||
+ mss_now = max(mss_now, sock_net(sk)->ipv4.sysctl_tcp_min_snd_mss);
|
||||
return mss_now;
|
||||
}
|
||||
|
||||
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
|
||||
index 35f638cfc675..61359944acc7 100644
|
||||
--- a/net/ipv4/tcp_timer.c
|
||||
+++ b/net/ipv4/tcp_timer.c
|
||||
@@ -132,6 +132,7 @@ static void tcp_mtu_probing(struct inet_connection_sock *icsk, struct sock *sk)
|
||||
mss = tcp_mtu_to_mss(sk, icsk->icsk_mtup.search_low) >> 1;
|
||||
mss = min(net->ipv4.sysctl_tcp_base_mss, mss);
|
||||
mss = max(mss, 68 - tp->tcp_header_len);
|
||||
+ mss = max(mss, net->ipv4.sysctl_tcp_min_snd_mss);
|
||||
icsk->icsk_mtup.search_low = tcp_mss_to_mtu(sk, mss);
|
||||
tcp_sync_mss(sk, icsk->icsk_pmtu_cookie);
|
||||
}
|
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -266,6 +266,7 @@ config MWL8K
|
||||
will be called mwl8k. If unsure, say N.
|
||||
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/b43/Kconfig"
|
||||
source "drivers/net/wireless/b43legacy/Kconfig"
|
||||
source "drivers/net/wireless/brcm80211/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -20,6 +20,7 @@ obj-$(CONFIG_PRISM54) += prism54/
|
||||
|
||||
obj-$(CONFIG_HOSTAP) += hostap/
|
||||
obj-$(CONFIG_B43) += b43/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_B43LEGACY) += b43legacy/
|
||||
obj-$(CONFIG_ZD1211RW) += zd1211rw/
|
||||
obj-$(CONFIG_WLAN) += realtek/
|
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -32,6 +32,7 @@ config WIRELESS_WDS
|
||||
|
||||
source "drivers/net/wireless/admtek/Kconfig"
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/atmel/Kconfig"
|
||||
source "drivers/net/wireless/broadcom/Kconfig"
|
||||
source "drivers/net/wireless/cisco/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
|
||||
obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/
|
||||
obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/
|
File diff suppressed because it is too large
Load diff
|
@ -1,24 +0,0 @@
|
|||
diff --git a/drivers/net/wireless/Kconfig b/drivers/net/wireless/Kconfig
|
||||
index 95cdb48fad061..db9ee74578012 100644
|
||||
--- a/drivers/net/wireless/Kconfig
|
||||
+++ b/drivers/net/wireless/Kconfig
|
||||
@@ -32,6 +32,7 @@ config WIRELESS_WDS
|
||||
|
||||
source "drivers/net/wireless/admtek/Kconfig"
|
||||
source "drivers/net/wireless/ath/Kconfig"
|
||||
+source "drivers/net/wireless/rtl8188eu/Kconfig"
|
||||
source "drivers/net/wireless/atmel/Kconfig"
|
||||
source "drivers/net/wireless/broadcom/Kconfig"
|
||||
source "drivers/net/wireless/cisco/Kconfig"
|
||||
diff --git a/drivers/net/wireless/Makefile b/drivers/net/wireless/Makefile
|
||||
index edeb51f6fa551..2c4d8522929bf 100644
|
||||
--- a/drivers/net/wireless/Makefile
|
||||
+++ b/drivers/net/wireless/Makefile
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
obj-$(CONFIG_WLAN_VENDOR_ADMTEK) += admtek/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATH) += ath/
|
||||
+obj-$(CONFIG_RTL8188EU) += rtl8188eu/
|
||||
obj-$(CONFIG_WLAN_VENDOR_ATMEL) += atmel/
|
||||
obj-$(CONFIG_WLAN_VENDOR_BROADCOM) += broadcom/
|
||||
obj-$(CONFIG_WLAN_VENDOR_CISCO) += cisco/
|
File diff suppressed because it is too large
Load diff
3508
patch/kernel/udoo-next/04-patch-4.4.162-163.patch
Normal file
3508
patch/kernel/udoo-next/04-patch-4.4.162-163.patch
Normal file
File diff suppressed because it is too large
Load diff
4219
patch/kernel/udoo-next/04-patch-4.4.163-164.patch
Normal file
4219
patch/kernel/udoo-next/04-patch-4.4.163-164.patch
Normal file
File diff suppressed because it is too large
Load diff
1675
patch/kernel/udoo-next/04-patch-4.4.164-165.patch
Normal file
1675
patch/kernel/udoo-next/04-patch-4.4.164-165.patch
Normal file
File diff suppressed because it is too large
Load diff
2967
patch/kernel/udoo-next/04-patch-4.4.165-166.patch
Normal file
2967
patch/kernel/udoo-next/04-patch-4.4.165-166.patch
Normal file
File diff suppressed because it is too large
Load diff
2689
patch/kernel/udoo-next/04-patch-4.4.166-167.patch
Normal file
2689
patch/kernel/udoo-next/04-patch-4.4.166-167.patch
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue