Merge remote-tracking branch 'upstream/master'
Conflicts: config/kernel/linux-sunxi-dev.config
This commit is contained in:
commit
3cc3707a78
56
common.sh
56
common.sh
@ -25,8 +25,11 @@
|
||||
|
||||
compile_uboot()
|
||||
{
|
||||
local ubootdir="$1"
|
||||
|
||||
if [[ $USE_OVERLAYFS == yes ]]; then
|
||||
local ubootdir=$(overlayfs_wrapper "wrap" "$SOURCES/$BOOTSOURCEDIR" "u-boot_${LINUXFAMILY}_${BRANCH}")
|
||||
else
|
||||
local ubootdir="$SOURCES/$BOOTSOURCEDIR"
|
||||
fi
|
||||
cd "$ubootdir"
|
||||
|
||||
[[ $FORCE_CHECKOUT == yes ]] && advanced_patch "u-boot" "$BOOTDIR-$BRANCH" "$BOARD" "$BOOTDIR-$BRANCH"
|
||||
@ -38,6 +41,11 @@ compile_uboot()
|
||||
local version=$(grab_version "$ubootdir")
|
||||
|
||||
display_alert "Compiling uboot" "$version" "info"
|
||||
# if requires specific toolchain, check if default is suitable
|
||||
if [[ -n $UBOOT_NEEDS_GCC ]] && ! check_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" ; then
|
||||
# try to find suitable in $SRC/toolchains, exit if not found
|
||||
find_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" "UBOOT_TOOLCHAIN"
|
||||
fi
|
||||
display_alert "Compiler version" "${UBOOT_COMPILER}gcc $(eval ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} ${UBOOT_COMPILER}gcc -dumpversion)" "info"
|
||||
|
||||
eval CCACHE_BASEDIR="$(pwd)" ${UBOOT_TOOLCHAIN:+env PATH=$UBOOT_TOOLCHAIN:$PATH} \
|
||||
@ -67,10 +75,11 @@ compile_uboot()
|
||||
|
||||
# create .deb package
|
||||
local uboot_name=${CHOSEN_UBOOT}_${REVISION}_${ARCH}
|
||||
mkdir -p $DEST/debs/$uboot_name/usr/lib/{u-boot,$uboot_name} $DEST/debs/$uboot_name/DEBIAN
|
||||
rm -rf $uboot_name
|
||||
mkdir -p $uboot_name/usr/lib/{u-boot,$uboot_name} $uboot_name/DEBIAN
|
||||
|
||||
# set up postinstall script
|
||||
cat <<-EOF > $DEST/debs/$uboot_name/DEBIAN/postinst
|
||||
cat <<-EOF > $uboot_name/DEBIAN/postinst
|
||||
#!/bin/bash
|
||||
source /usr/lib/u-boot/platform_install.sh
|
||||
[[ \$DEVICE == /dev/null ]] && exit 0
|
||||
@ -81,17 +90,17 @@ compile_uboot()
|
||||
sync
|
||||
exit 0
|
||||
EOF
|
||||
chmod 755 $DEST/debs/$uboot_name/DEBIAN/postinst
|
||||
chmod 755 $uboot_name/DEBIAN/postinst
|
||||
|
||||
# declare -f on non-defined function does not do anything
|
||||
cat <<-EOF > $DEST/debs/$uboot_name/usr/lib/u-boot/platform_install.sh
|
||||
cat <<-EOF > $uboot_name/usr/lib/u-boot/platform_install.sh
|
||||
DIR=/usr/lib/$uboot_name
|
||||
$(declare -f write_uboot_platform)
|
||||
$(declare -f setup_write_uboot_platform)
|
||||
EOF
|
||||
|
||||
# set up control file
|
||||
cat <<-END > $DEST/debs/$uboot_name/DEBIAN/control
|
||||
cat <<-END > $uboot_name/DEBIAN/control
|
||||
Package: linux-u-boot-${BOARD}-${BRANCH}
|
||||
Version: $REVISION
|
||||
Architecture: $ARCH
|
||||
@ -108,25 +117,25 @@ compile_uboot()
|
||||
# copy files to build directory
|
||||
for f in $UBOOT_FILES; do
|
||||
[[ ! -f $f ]] && exit_with_error "U-boot file not found" "$(basename $f)"
|
||||
cp $f $DEST/debs/$uboot_name/usr/lib/$uboot_name
|
||||
cp $f $uboot_name/usr/lib/$uboot_name
|
||||
done
|
||||
|
||||
cd $DEST/debs
|
||||
display_alert "Building deb" "$uboot_name.deb" "info"
|
||||
display_alert "Building deb" "${uboot_name}.deb" "info"
|
||||
eval 'dpkg -b $uboot_name 2>&1' ${PROGRESS_LOG_TO_FILE:+' | tee -a $DEST/debug/compilation.log'}
|
||||
rm -rf $uboot_name
|
||||
|
||||
local filesize=$(wc -c $DEST/debs/$uboot_name.deb | cut -f 1 -d ' ')
|
||||
[[ ! -f ${uboot_name}.deb || $(stat -c '%s' "${uboot_name}.deb") -lt 5000 ]] && exit_with_error "Building u-boot failed"
|
||||
|
||||
if [[ $filesize -lt 50000 ]]; then
|
||||
rm $DEST/debs/$uboot_name.deb
|
||||
exit_with_error "Building u-boot failed, check configuration"
|
||||
fi
|
||||
mv ${uboot_name}.deb $DEST/debs/
|
||||
}
|
||||
|
||||
compile_kernel()
|
||||
{
|
||||
local kerneldir="$1"
|
||||
if [[ $USE_OVERLAYFS == yes ]]; then
|
||||
local kerneldir=$(overlayfs_wrapper "wrap" "$SOURCES/$LINUXSOURCEDIR" "kernel_${LINUXFAMILY}_${BRANCH}")
|
||||
else
|
||||
local kerneldir="$SOURCES/$LINUXSOURCEDIR"
|
||||
fi
|
||||
cd "$kerneldir"
|
||||
|
||||
# this is a patch that Ubuntu Trusty compiler works
|
||||
@ -145,6 +154,11 @@ compile_kernel()
|
||||
local version=$(grab_version "$kerneldir")
|
||||
|
||||
display_alert "Compiling $BRANCH kernel" "$version" "info"
|
||||
# if requires specific toolchain, check if default is suitable
|
||||
if [[ -n $KERNEL_NEEDS_GCC ]] && ! check_toolchain "$KERNEL" "$KERNEL_NEEDS_GCC" ; then
|
||||
# try to find suitable in $SRC/toolchains, exit if not found
|
||||
find_toolchain "KERNEL" "$KERNEL_NEEDS_GCC" "KERNEL_TOOLCHAIN"
|
||||
fi
|
||||
display_alert "Compiler version" "${KERNEL_COMPILER}gcc $(eval ${KERNEL_TOOLCHAIN:+env PATH=$KERNEL_TOOLCHAIN:$PATH} ${KERNEL_COMPILER}gcc -dumpversion)" "info"
|
||||
|
||||
# use proven config
|
||||
@ -425,10 +439,11 @@ userpatch_create()
|
||||
for i in {3..1..1}; do echo -n "$i." && sleep 1; done
|
||||
}
|
||||
|
||||
# overlayfs_wrapper <operation> <workdir>
|
||||
# overlayfs_wrapper <operation> <workdir> <description>
|
||||
#
|
||||
# <operation>: wrap|cleanup
|
||||
# <workdir>: path to source directory
|
||||
# <description>: suffix for merged directory to help locating it in /tmp
|
||||
# return value: new directory
|
||||
#
|
||||
# Assumptions/notes:
|
||||
@ -440,16 +455,13 @@ userpatch_create()
|
||||
#
|
||||
overlayfs_wrapper()
|
||||
{
|
||||
if [[ $USE_OVERLAYFS != yes && -n $2 ]]; then
|
||||
echo "$2"
|
||||
return
|
||||
fi
|
||||
local operation="$1"
|
||||
if [[ $operation == wrap ]]; then
|
||||
local srcdir="$2"
|
||||
local description="$3"
|
||||
local tempdir=$(mktemp -d)
|
||||
local workdir=$(mktemp -d)
|
||||
local mergeddir=$(mktemp -d)
|
||||
local mergeddir=$(mktemp -d --suffix="_$description")
|
||||
mount -t overlay overlay -o lowerdir="$srcdir",upperdir="$tempdir",workdir="$workdir" "$mergeddir"
|
||||
# this is executed in a subshell, so use temp files to pass extra data outside
|
||||
echo "$tempdir" >> /tmp/.overlayfs_wrapper_cleanup
|
||||
|
||||
@ -3,7 +3,7 @@ BOARD_NAME="Pine64"
|
||||
KERNEL_TARGET="default,dev"
|
||||
LINUXFAMILY=pine64
|
||||
BOOTCONFIG=pine64_plus_defconfig
|
||||
MODULES="sunxi_codec sunxi_i2s sunxi_sndcodec 8723bs"
|
||||
MODULES="sunxi_codec sunxi_i2s sunxi_sndcodec 8723bs gt9xxf_ts"
|
||||
MODULES_NEXT=""
|
||||
CLI_TARGET="jessie,xenial:default,dev"
|
||||
DESKTOP_TARGET=""
|
||||
|
||||
@ -1,3 +1,5 @@
|
||||
verbosity=1
|
||||
console=both
|
||||
disp_mode=720p60
|
||||
camera_type=none
|
||||
pine64_lcd=off
|
||||
|
||||
@ -11,6 +11,8 @@ setenv console "both"
|
||||
setenv disp_mem_reserves "off"
|
||||
setenv disp_mode "720p60"
|
||||
setenv rootfstype "ext4"
|
||||
setenv camera_type "none"
|
||||
setenv pine64_lcd "off"
|
||||
|
||||
if ext4load mmc 0 ${load_addr} /boot/armbianEnv.txt || fatload mmc 0 ${load_addr} armbianEnv.txt || ext4load mmc 0 ${load_addr} armbianEnv.txt; then
|
||||
env import -t ${load_addr} ${filesize}
|
||||
@ -46,8 +48,22 @@ fi
|
||||
|
||||
fdt addr ${fdt_addr}
|
||||
fdt resize
|
||||
fdt set /soc@01c00000/disp@01000000 screen0_output_mode ${fdt_disp_mode}
|
||||
#fdt set /soc@01c00000/disp@01000000 screen1_output_mode ${fdt_disp_mode}
|
||||
if test ${pine64_lcd} = 1 || test ${pine64_lcd} = on; then
|
||||
fdt set /soc@01c00000/disp@01000000 screen0_output_type "<0x00000001>"
|
||||
fdt set /soc@01c00000/disp@01000000 screen0_output_mode "<0x00000004>"
|
||||
fdt set /soc@01c00000/disp@01000000 screen1_output_mode ${fdt_disp_mode}
|
||||
|
||||
fdt set /soc@01c00000/lcd0@01c0c000 lcd_used "<0x00000001>"
|
||||
|
||||
fdt set /soc@01c00000/boot_disp output_type "<0x00000001>"
|
||||
fdt set /soc@01c00000/boot_disp output_mode "<0x00000004>"
|
||||
|
||||
fdt set /soc@01c00000/ctp status "okay"
|
||||
fdt set /soc@01c00000/ctp ctp_used "<0x00000001>"
|
||||
fdt set /soc@01c00000/ctp ctp_name "gt911_DB2"
|
||||
else
|
||||
fdt set /soc@01c00000/disp@01000000 screen0_output_mode ${fdt_disp_mode}
|
||||
fi
|
||||
|
||||
# DVI compatibility
|
||||
if test ${disp_dvi_compat} = 1 || test ${disp_dvi_compat} = on; then
|
||||
@ -59,6 +75,21 @@ if test "${disp_mem_reserves}" = "off"; then
|
||||
# TODO: Remove reserved memory from DT or disable devices?
|
||||
fi
|
||||
|
||||
# default, only set status
|
||||
if test "${camera_type}" = "s5k4ec"; then
|
||||
fdt set /soc@01c00000/vfe@0/ status "okay"
|
||||
fdt set /soc@01c00000/vfe@0/dev@0/ status "okay"
|
||||
fi
|
||||
|
||||
# change name, i2c address and vdd voltage
|
||||
if test "${camera_type}" = "ov5640"; then
|
||||
fdt set /soc@01c00000/vfe@0/dev@0/ csi0_dev0_mname "ov5640"
|
||||
fdt set /soc@01c00000/vfe@0/dev@0/ csi0_dev0_twi_addr "<0x00000078>"
|
||||
fdt set /soc@01c00000/vfe@0/dev@0/ csi0_dev0_iovdd_vol "<0x001b7740>"
|
||||
fdt set /soc@01c00000/vfe@0/ status "okay"
|
||||
fdt set /soc@01c00000/vfe@0/dev@0/ status "okay"
|
||||
fi
|
||||
|
||||
booti ${kernel_addr} ${initrd_addr} ${fdt_addr}
|
||||
|
||||
# Recompile with:
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 3.10.102 Kernel Configuration
|
||||
# Linux/arm 3.10.104 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_MIGHT_HAVE_PCI=y
|
||||
@ -570,7 +570,7 @@ CONFIG_NET=y
|
||||
CONFIG_PACKET=y
|
||||
# CONFIG_PACKET_DIAG is not set
|
||||
CONFIG_UNIX=y
|
||||
CONFIG_UNIX_DIAG=y
|
||||
CONFIG_UNIX_DIAG=m
|
||||
CONFIG_XFRM=y
|
||||
CONFIG_XFRM_ALGO=y
|
||||
# CONFIG_XFRM_USER is not set
|
||||
@ -580,19 +580,29 @@ CONFIG_XFRM_ALGO=y
|
||||
CONFIG_NET_KEY=y
|
||||
# CONFIG_NET_KEY_MIGRATE is not set
|
||||
CONFIG_INET=y
|
||||
# CONFIG_IP_MULTICAST is not set
|
||||
# CONFIG_IP_ADVANCED_ROUTER is not set
|
||||
CONFIG_IP_MULTICAST=y
|
||||
CONFIG_IP_ADVANCED_ROUTER=y
|
||||
# CONFIG_IP_FIB_TRIE_STATS is not set
|
||||
# CONFIG_IP_MULTIPLE_TABLES is not set
|
||||
# CONFIG_IP_ROUTE_MULTIPATH is not set
|
||||
# CONFIG_IP_ROUTE_VERBOSE is not set
|
||||
CONFIG_IP_ROUTE_CLASSID=y
|
||||
CONFIG_IP_PNP=y
|
||||
CONFIG_IP_PNP_DHCP=y
|
||||
CONFIG_IP_PNP_BOOTP=y
|
||||
CONFIG_IP_PNP_RARP=y
|
||||
# CONFIG_NET_IPIP is not set
|
||||
# CONFIG_NET_IPGRE_DEMUX is not set
|
||||
CONFIG_NET_IPIP=m
|
||||
CONFIG_NET_IPGRE_DEMUX=m
|
||||
CONFIG_NET_IP_TUNNEL=y
|
||||
CONFIG_NET_IPGRE=m
|
||||
# CONFIG_NET_IPGRE_BROADCAST is not set
|
||||
CONFIG_IP_MROUTE=y
|
||||
# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
|
||||
# CONFIG_IP_PIMSM_V1 is not set
|
||||
# CONFIG_IP_PIMSM_V2 is not set
|
||||
# CONFIG_ARPD is not set
|
||||
# CONFIG_SYN_COOKIES is not set
|
||||
# CONFIG_NET_IPVTI is not set
|
||||
CONFIG_NET_IPVTI=m
|
||||
# CONFIG_INET_AH is not set
|
||||
# CONFIG_INET_ESP is not set
|
||||
# CONFIG_INET_IPCOMP is not set
|
||||
@ -690,6 +700,7 @@ CONFIG_NETFILTER_XTABLES=m
|
||||
#
|
||||
CONFIG_NETFILTER_XT_MARK=m
|
||||
CONFIG_NETFILTER_XT_CONNMARK=m
|
||||
# CONFIG_NETFILTER_XT_SET is not set
|
||||
|
||||
#
|
||||
# Xtables targets
|
||||
@ -739,6 +750,7 @@ CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_HELPER=m
|
||||
CONFIG_NETFILTER_XT_MATCH_HL=m
|
||||
CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
|
||||
# CONFIG_NETFILTER_XT_MATCH_IPVS is not set
|
||||
CONFIG_NETFILTER_XT_MATCH_LENGTH=m
|
||||
CONFIG_NETFILTER_XT_MATCH_LIMIT=m
|
||||
CONFIG_NETFILTER_XT_MATCH_MAC=m
|
||||
@ -762,8 +774,57 @@ CONFIG_NETFILTER_XT_MATCH_STRING=m
|
||||
CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
|
||||
CONFIG_NETFILTER_XT_MATCH_TIME=m
|
||||
CONFIG_NETFILTER_XT_MATCH_U32=m
|
||||
# CONFIG_IP_SET is not set
|
||||
# CONFIG_IP_VS is not set
|
||||
CONFIG_IP_SET=m
|
||||
CONFIG_IP_SET_MAX=256
|
||||
CONFIG_IP_SET_BITMAP_IP=m
|
||||
CONFIG_IP_SET_BITMAP_IPMAC=m
|
||||
CONFIG_IP_SET_BITMAP_PORT=m
|
||||
CONFIG_IP_SET_HASH_IP=m
|
||||
CONFIG_IP_SET_HASH_IPPORT=m
|
||||
CONFIG_IP_SET_HASH_IPPORTIP=m
|
||||
CONFIG_IP_SET_HASH_IPPORTNET=m
|
||||
CONFIG_IP_SET_HASH_NET=m
|
||||
CONFIG_IP_SET_HASH_NETPORT=m
|
||||
CONFIG_IP_SET_HASH_NETIFACE=m
|
||||
CONFIG_IP_SET_LIST_SET=m
|
||||
CONFIG_IP_VS=m
|
||||
# CONFIG_IP_VS_IPV6 is not set
|
||||
# CONFIG_IP_VS_DEBUG is not set
|
||||
CONFIG_IP_VS_TAB_BITS=12
|
||||
|
||||
#
|
||||
# IPVS transport protocol load balancing support
|
||||
#
|
||||
# CONFIG_IP_VS_PROTO_TCP is not set
|
||||
# CONFIG_IP_VS_PROTO_UDP is not set
|
||||
# CONFIG_IP_VS_PROTO_AH_ESP is not set
|
||||
# CONFIG_IP_VS_PROTO_ESP is not set
|
||||
# CONFIG_IP_VS_PROTO_AH is not set
|
||||
# CONFIG_IP_VS_PROTO_SCTP is not set
|
||||
|
||||
#
|
||||
# IPVS scheduler
|
||||
#
|
||||
# CONFIG_IP_VS_RR is not set
|
||||
# CONFIG_IP_VS_WRR is not set
|
||||
# CONFIG_IP_VS_LC is not set
|
||||
# CONFIG_IP_VS_WLC is not set
|
||||
# CONFIG_IP_VS_LBLC is not set
|
||||
# CONFIG_IP_VS_LBLCR is not set
|
||||
# CONFIG_IP_VS_DH is not set
|
||||
# CONFIG_IP_VS_SH is not set
|
||||
# CONFIG_IP_VS_SED is not set
|
||||
# CONFIG_IP_VS_NQ is not set
|
||||
|
||||
#
|
||||
# IPVS SH scheduler
|
||||
#
|
||||
CONFIG_IP_VS_SH_TAB_BITS=8
|
||||
|
||||
#
|
||||
# IPVS application helper
|
||||
#
|
||||
# CONFIG_IP_VS_NFCT is not set
|
||||
|
||||
#
|
||||
# IP: Netfilter Configuration
|
||||
@ -792,7 +853,7 @@ CONFIG_IP_NF_TARGET_CLUSTERIP=m
|
||||
CONFIG_IP_NF_TARGET_ECN=m
|
||||
CONFIG_IP_NF_TARGET_TTL=m
|
||||
CONFIG_IP_NF_RAW=m
|
||||
# CONFIG_IP_NF_SECURITY is not set
|
||||
CONFIG_IP_NF_SECURITY=m
|
||||
CONFIG_IP_NF_ARPTABLES=m
|
||||
CONFIG_IP_NF_ARPFILTER=m
|
||||
CONFIG_IP_NF_ARP_MANGLE=m
|
||||
@ -817,17 +878,42 @@ CONFIG_IP6_NF_FILTER=m
|
||||
CONFIG_IP6_NF_TARGET_REJECT=m
|
||||
CONFIG_IP6_NF_MANGLE=m
|
||||
CONFIG_IP6_NF_RAW=m
|
||||
# CONFIG_IP6_NF_SECURITY is not set
|
||||
CONFIG_IP6_NF_SECURITY=m
|
||||
CONFIG_NF_NAT_IPV6=m
|
||||
CONFIG_IP6_NF_TARGET_MASQUERADE=m
|
||||
CONFIG_IP6_NF_TARGET_NPT=m
|
||||
# CONFIG_BRIDGE_NF_EBTABLES is not set
|
||||
CONFIG_BRIDGE_NF_EBTABLES=m
|
||||
CONFIG_BRIDGE_EBT_BROUTE=m
|
||||
CONFIG_BRIDGE_EBT_T_FILTER=m
|
||||
CONFIG_BRIDGE_EBT_T_NAT=m
|
||||
CONFIG_BRIDGE_EBT_802_3=m
|
||||
CONFIG_BRIDGE_EBT_AMONG=m
|
||||
CONFIG_BRIDGE_EBT_ARP=m
|
||||
CONFIG_BRIDGE_EBT_IP=m
|
||||
CONFIG_BRIDGE_EBT_IP6=m
|
||||
CONFIG_BRIDGE_EBT_LIMIT=m
|
||||
CONFIG_BRIDGE_EBT_MARK=m
|
||||
CONFIG_BRIDGE_EBT_PKTTYPE=m
|
||||
CONFIG_BRIDGE_EBT_STP=m
|
||||
CONFIG_BRIDGE_EBT_VLAN=m
|
||||
CONFIG_BRIDGE_EBT_ARPREPLY=m
|
||||
CONFIG_BRIDGE_EBT_DNAT=m
|
||||
CONFIG_BRIDGE_EBT_MARK_T=m
|
||||
CONFIG_BRIDGE_EBT_REDIRECT=m
|
||||
CONFIG_BRIDGE_EBT_SNAT=m
|
||||
CONFIG_BRIDGE_EBT_LOG=m
|
||||
CONFIG_BRIDGE_EBT_ULOG=m
|
||||
CONFIG_BRIDGE_EBT_NFLOG=m
|
||||
# CONFIG_IP_DCCP is not set
|
||||
# CONFIG_IP_SCTP is not set
|
||||
# CONFIG_RDS is not set
|
||||
# CONFIG_TIPC is not set
|
||||
# CONFIG_ATM is not set
|
||||
# CONFIG_L2TP is not set
|
||||
CONFIG_L2TP=m
|
||||
# CONFIG_L2TP_DEBUGFS is not set
|
||||
CONFIG_L2TP_V3=y
|
||||
CONFIG_L2TP_IP=m
|
||||
CONFIG_L2TP_ETH=m
|
||||
CONFIG_STP=y
|
||||
CONFIG_BRIDGE=y
|
||||
CONFIG_BRIDGE_IGMP_SNOOPING=y
|
||||
@ -845,7 +931,51 @@ CONFIG_LLC=y
|
||||
# CONFIG_LAPB is not set
|
||||
# CONFIG_PHONET is not set
|
||||
# CONFIG_IEEE802154 is not set
|
||||
# CONFIG_NET_SCHED is not set
|
||||
CONFIG_NET_SCHED=y
|
||||
|
||||
#
|
||||
# Queueing/Scheduling
|
||||
#
|
||||
CONFIG_NET_SCH_CBQ=m
|
||||
CONFIG_NET_SCH_HTB=m
|
||||
CONFIG_NET_SCH_HFSC=m
|
||||
CONFIG_NET_SCH_PRIO=m
|
||||
CONFIG_NET_SCH_MULTIQ=m
|
||||
CONFIG_NET_SCH_RED=m
|
||||
CONFIG_NET_SCH_SFB=m
|
||||
CONFIG_NET_SCH_SFQ=m
|
||||
CONFIG_NET_SCH_TEQL=m
|
||||
CONFIG_NET_SCH_TBF=m
|
||||
CONFIG_NET_SCH_GRED=m
|
||||
CONFIG_NET_SCH_DSMARK=m
|
||||
CONFIG_NET_SCH_NETEM=m
|
||||
CONFIG_NET_SCH_DRR=m
|
||||
CONFIG_NET_SCH_MQPRIO=m
|
||||
CONFIG_NET_SCH_CHOKE=m
|
||||
CONFIG_NET_SCH_QFQ=m
|
||||
CONFIG_NET_SCH_CODEL=m
|
||||
CONFIG_NET_SCH_FQ_CODEL=m
|
||||
CONFIG_NET_SCH_PLUG=m
|
||||
|
||||
#
|
||||
# Classification
|
||||
#
|
||||
CONFIG_NET_CLS=y
|
||||
CONFIG_NET_CLS_BASIC=m
|
||||
CONFIG_NET_CLS_TCINDEX=m
|
||||
CONFIG_NET_CLS_ROUTE4=m
|
||||
CONFIG_NET_CLS_FW=m
|
||||
CONFIG_NET_CLS_U32=m
|
||||
# CONFIG_CLS_U32_PERF is not set
|
||||
# CONFIG_CLS_U32_MARK is not set
|
||||
CONFIG_NET_CLS_RSVP=m
|
||||
CONFIG_NET_CLS_RSVP6=m
|
||||
CONFIG_NET_CLS_FLOW=m
|
||||
CONFIG_NET_CLS_CGROUP=m
|
||||
# CONFIG_NET_EMATCH is not set
|
||||
# CONFIG_NET_CLS_ACT is not set
|
||||
# CONFIG_NET_CLS_IND is not set
|
||||
CONFIG_NET_SCH_FIFO=y
|
||||
# CONFIG_DCB is not set
|
||||
CONFIG_DNS_RESOLVER=y
|
||||
# CONFIG_BATMAN_ADV is not set
|
||||
@ -1421,8 +1551,13 @@ CONFIG_BONDING=y
|
||||
# CONFIG_DUMMY is not set
|
||||
# CONFIG_EQUALIZER is not set
|
||||
# CONFIG_NET_FC is not set
|
||||
# CONFIG_MII is not set
|
||||
# CONFIG_NET_TEAM is not set
|
||||
CONFIG_MII=m
|
||||
CONFIG_NET_TEAM=m
|
||||
# CONFIG_NET_TEAM_MODE_BROADCAST is not set
|
||||
# CONFIG_NET_TEAM_MODE_ROUNDROBIN is not set
|
||||
# CONFIG_NET_TEAM_MODE_RANDOM is not set
|
||||
# CONFIG_NET_TEAM_MODE_ACTIVEBACKUP is not set
|
||||
# CONFIG_NET_TEAM_MODE_LOADBALANCE is not set
|
||||
CONFIG_MACVLAN=y
|
||||
CONFIG_MACVTAP=y
|
||||
CONFIG_VXLAN=y
|
||||
@ -1859,8 +1994,19 @@ CONFIG_MARVELL_PHY=y
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
# CONFIG_MICREL_KS8995MA is not set
|
||||
# CONFIG_PPP is not set
|
||||
CONFIG_PPP=m
|
||||
CONFIG_PPP_BSDCOMP=m
|
||||
CONFIG_PPP_DEFLATE=m
|
||||
CONFIG_PPP_FILTER=y
|
||||
CONFIG_PPP_MPPE=m
|
||||
CONFIG_PPP_MULTILINK=y
|
||||
CONFIG_PPPOE=m
|
||||
CONFIG_PPTP=m
|
||||
CONFIG_PPPOL2TP=m
|
||||
# CONFIG_PPP_ASYNC is not set
|
||||
# CONFIG_PPP_SYNC_TTY is not set
|
||||
# CONFIG_SLIP is not set
|
||||
CONFIG_SLHC=m
|
||||
|
||||
#
|
||||
# USB Network Adapters
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.7.3 Kernel Configuration
|
||||
# Linux/arm 4.8.6 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
@ -63,6 +63,8 @@ CONFIG_HARDIRQS_SW_RESEND=y
|
||||
CONFIG_GENERIC_IRQ_CHIP=y
|
||||
CONFIG_IRQ_DOMAIN=y
|
||||
CONFIG_IRQ_DOMAIN_HIERARCHY=y
|
||||
CONFIG_GENERIC_MSI_IRQ=y
|
||||
CONFIG_GENERIC_MSI_IRQ_DOMAIN=y
|
||||
CONFIG_HANDLE_DOMAIN_IRQ=y
|
||||
CONFIG_IRQ_DOMAIN_DEBUG=y
|
||||
CONFIG_IRQ_FORCED_THREADING=y
|
||||
@ -222,6 +224,8 @@ CONFIG_HAVE_PERF_REGS=y
|
||||
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
|
||||
CONFIG_HAVE_ARCH_JUMP_LABEL=y
|
||||
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y
|
||||
CONFIG_HAVE_GCC_PLUGINS=y
|
||||
# CONFIG_GCC_PLUGINS is not set
|
||||
CONFIG_HAVE_CC_STACKPROTECTOR=y
|
||||
# CONFIG_CC_STACKPROTECTOR is not set
|
||||
CONFIG_CC_STACKPROTECTOR_NONE=y
|
||||
@ -308,7 +312,6 @@ CONFIG_FREEZER=y
|
||||
#
|
||||
CONFIG_MMU=y
|
||||
CONFIG_ARCH_MULTIPLATFORM=y
|
||||
# CONFIG_ARCH_CLPS711X is not set
|
||||
# CONFIG_ARCH_GEMINI is not set
|
||||
# CONFIG_ARCH_EBSA110 is not set
|
||||
# CONFIG_ARCH_EP93XX is not set
|
||||
@ -456,6 +459,11 @@ CONFIG_ARM_ERRATA_720789=y
|
||||
# CONFIG_ARM_ERRATA_775420 is not set
|
||||
# CONFIG_ARM_ERRATA_798181 is not set
|
||||
# CONFIG_ARM_ERRATA_773022 is not set
|
||||
# CONFIG_ARM_ERRATA_818325_852422 is not set
|
||||
# CONFIG_ARM_ERRATA_821420 is not set
|
||||
# CONFIG_ARM_ERRATA_825619 is not set
|
||||
# CONFIG_ARM_ERRATA_852421 is not set
|
||||
# CONFIG_ARM_ERRATA_852423 is not set
|
||||
|
||||
#
|
||||
# Bus support
|
||||
@ -464,7 +472,8 @@ CONFIG_PCI=y
|
||||
# CONFIG_PCI_DOMAINS_GENERIC is not set
|
||||
CONFIG_PCI_SYSCALL=y
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
# CONFIG_PCI_MSI is not set
|
||||
CONFIG_PCI_MSI=y
|
||||
CONFIG_PCI_MSI_IRQ_DOMAIN=y
|
||||
# CONFIG_PCI_DEBUG is not set
|
||||
# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set
|
||||
# CONFIG_PCI_STUB is not set
|
||||
@ -695,7 +704,7 @@ CONFIG_XFRM_USER=y
|
||||
# CONFIG_XFRM_SUB_POLICY is not set
|
||||
# CONFIG_XFRM_MIGRATE is not set
|
||||
# CONFIG_XFRM_STATISTICS is not set
|
||||
CONFIG_XFRM_IPCOMP=y
|
||||
CONFIG_XFRM_IPCOMP=m
|
||||
CONFIG_NET_KEY=y
|
||||
# CONFIG_NET_KEY_MIGRATE is not set
|
||||
CONFIG_INET=y
|
||||
@ -720,18 +729,18 @@ CONFIG_IP_MROUTE_MULTIPLE_TABLES=y
|
||||
CONFIG_IP_PIMSM_V1=y
|
||||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
# CONFIG_NET_IPVTI is not set
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_UDP_TUNNEL=y
|
||||
# CONFIG_NET_FOU is not set
|
||||
CONFIG_NET_FOU=m
|
||||
# CONFIG_NET_FOU_IP_TUNNELS is not set
|
||||
CONFIG_INET_AH=y
|
||||
CONFIG_INET_ESP=y
|
||||
CONFIG_INET_IPCOMP=y
|
||||
CONFIG_INET_XFRM_TUNNEL=y
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
CONFIG_INET_XFRM_TUNNEL=m
|
||||
CONFIG_INET_TUNNEL=y
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=y
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=y
|
||||
CONFIG_INET_XFRM_MODE_BEET=y
|
||||
CONFIG_INET_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET_XFRM_MODE_BEET=m
|
||||
CONFIG_INET_DIAG=m
|
||||
CONFIG_INET_TCP_DIAG=m
|
||||
CONFIG_INET_UDP_DIAG=m
|
||||
@ -744,13 +753,14 @@ CONFIG_TCP_CONG_HTCP=y
|
||||
CONFIG_TCP_CONG_HSTCP=y
|
||||
CONFIG_TCP_CONG_HYBLA=y
|
||||
CONFIG_TCP_CONG_VEGAS=y
|
||||
CONFIG_TCP_CONG_NV=y
|
||||
CONFIG_TCP_CONG_SCALABLE=y
|
||||
CONFIG_TCP_CONG_LP=y
|
||||
CONFIG_TCP_CONG_VENO=y
|
||||
CONFIG_TCP_CONG_YEAH=y
|
||||
CONFIG_TCP_CONG_ILLINOIS=y
|
||||
# CONFIG_TCP_CONG_DCTCP is not set
|
||||
# CONFIG_TCP_CONG_CDG is not set
|
||||
CONFIG_TCP_CONG_DCTCP=y
|
||||
CONFIG_TCP_CONG_CDG=y
|
||||
# CONFIG_DEFAULT_BIC is not set
|
||||
CONFIG_DEFAULT_CUBIC=y
|
||||
# CONFIG_DEFAULT_HTCP is not set
|
||||
@ -758,6 +768,8 @@ CONFIG_DEFAULT_CUBIC=y
|
||||
# CONFIG_DEFAULT_VEGAS is not set
|
||||
# CONFIG_DEFAULT_VENO is not set
|
||||
# CONFIG_DEFAULT_WESTWOOD is not set
|
||||
# CONFIG_DEFAULT_DCTCP is not set
|
||||
# CONFIG_DEFAULT_CDG is not set
|
||||
# CONFIG_DEFAULT_RENO is not set
|
||||
CONFIG_DEFAULT_TCP_CONG="cubic"
|
||||
CONFIG_TCP_MD5SIG=y
|
||||
@ -776,13 +788,13 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET6_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET6_XFRM_MODE_BEET=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
# CONFIG_IPV6_VTI is not set
|
||||
CONFIG_IPV6_VTI=m
|
||||
CONFIG_IPV6_SIT=m
|
||||
CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
# CONFIG_IPV6_GRE is not set
|
||||
# CONFIG_IPV6_FOU is not set
|
||||
CONFIG_IPV6_GRE=m
|
||||
CONFIG_IPV6_FOU=m
|
||||
# CONFIG_IPV6_FOU_TUNNEL is not set
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
CONFIG_IPV6_SUBTREES=y
|
||||
@ -1247,6 +1259,7 @@ CONFIG_NET_CLS_FLOW=m
|
||||
CONFIG_NET_CLS_CGROUP=y
|
||||
# CONFIG_NET_CLS_BPF is not set
|
||||
# CONFIG_NET_CLS_FLOWER is not set
|
||||
CONFIG_NET_CLS_MATCHALL=y
|
||||
CONFIG_NET_EMATCH=y
|
||||
CONFIG_NET_EMATCH_STACK=32
|
||||
CONFIG_NET_EMATCH_CMP=m
|
||||
@ -1286,6 +1299,7 @@ CONFIG_NET_MPLS_GSO=m
|
||||
CONFIG_HSR=m
|
||||
CONFIG_NET_SWITCHDEV=y
|
||||
# CONFIG_NET_L3_MASTER_DEV is not set
|
||||
# CONFIG_NET_NCSI is not set
|
||||
CONFIG_RPS=y
|
||||
CONFIG_RFS_ACCEL=y
|
||||
CONFIG_XPS=y
|
||||
@ -1518,6 +1532,7 @@ CONFIG_MTD_NAND_PXA3xx=y
|
||||
# CONFIG_MTD_NAND_PLATFORM is not set
|
||||
# CONFIG_MTD_NAND_ORION is not set
|
||||
# CONFIG_MTD_NAND_HISI504 is not set
|
||||
# CONFIG_MTD_NAND_MTK is not set
|
||||
# CONFIG_MTD_ONENAND is not set
|
||||
|
||||
#
|
||||
@ -1528,6 +1543,7 @@ CONFIG_MTD_NAND_PXA3xx=y
|
||||
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_MTD_UBI is not set
|
||||
CONFIG_DTC=y
|
||||
CONFIG_OF=y
|
||||
@ -1585,7 +1601,6 @@ CONFIG_BLK_DEV_NVME=m
|
||||
# CONFIG_ISL29003 is not set
|
||||
# CONFIG_ISL29020 is not set
|
||||
# CONFIG_SENSORS_TSL2550 is not set
|
||||
# CONFIG_SENSORS_BH1780 is not set
|
||||
# CONFIG_SENSORS_BH1770 is not set
|
||||
# CONFIG_SENSORS_APDS990X is not set
|
||||
# CONFIG_HMC6352 is not set
|
||||
@ -1654,8 +1669,7 @@ CONFIG_EEPROM_AT24=y
|
||||
#
|
||||
# CONFIG_ECHO is not set
|
||||
# CONFIG_CXL_BASE is not set
|
||||
# CONFIG_CXL_KERNEL_API is not set
|
||||
# CONFIG_CXL_EEH is not set
|
||||
# CONFIG_CXL_AFU_DRIVER_OPS is not set
|
||||
CONFIG_HAVE_IDE=y
|
||||
# CONFIG_IDE is not set
|
||||
|
||||
@ -1878,7 +1892,12 @@ CONFIG_BONDING=y
|
||||
# CONFIG_EQUALIZER is not set
|
||||
CONFIG_NET_FC=y
|
||||
CONFIG_IFB=m
|
||||
# CONFIG_NET_TEAM is not set
|
||||
CONFIG_NET_TEAM=m
|
||||
CONFIG_NET_TEAM_MODE_BROADCAST=m
|
||||
CONFIG_NET_TEAM_MODE_ROUNDROBIN=m
|
||||
CONFIG_NET_TEAM_MODE_RANDOM=m
|
||||
CONFIG_NET_TEAM_MODE_ACTIVEBACKUP=m
|
||||
CONFIG_NET_TEAM_MODE_LOADBALANCE=m
|
||||
CONFIG_MACVLAN=y
|
||||
CONFIG_MACVTAP=y
|
||||
CONFIG_IPVLAN=y
|
||||
@ -1909,15 +1928,14 @@ CONFIG_ATM_DUMMY=m
|
||||
#
|
||||
# CAIF transport drivers
|
||||
#
|
||||
# CONFIG_VHOST_NET is not set
|
||||
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
|
||||
|
||||
#
|
||||
# Distributed Switch Architecture drivers
|
||||
#
|
||||
# CONFIG_NET_DSA_MV88E6060 is not set
|
||||
CONFIG_NET_DSA_MV88E6XXX=m
|
||||
# CONFIG_NET_DSA_BCM_SF2 is not set
|
||||
# CONFIG_B53 is not set
|
||||
CONFIG_NET_DSA_MV88E6XXX=m
|
||||
CONFIG_ETHERNET=y
|
||||
CONFIG_NET_VENDOR_3COM=y
|
||||
# CONFIG_VORTEX is not set
|
||||
@ -1984,6 +2002,7 @@ CONFIG_NET_VENDOR_FARADAY=y
|
||||
# CONFIG_FTGMAC100 is not set
|
||||
CONFIG_NET_VENDOR_HISILICON=y
|
||||
# CONFIG_HIX5HD2_GMAC is not set
|
||||
# CONFIG_HISI_FEMAC is not set
|
||||
# CONFIG_HIP04_ETH is not set
|
||||
# CONFIG_HNS is not set
|
||||
# CONFIG_HNS_DSAF is not set
|
||||
@ -1998,7 +2017,10 @@ CONFIG_NET_VENDOR_INTEL=y
|
||||
# CONFIG_IGBVF is not set
|
||||
# CONFIG_IXGB is not set
|
||||
# CONFIG_IXGBE is not set
|
||||
# CONFIG_IXGBEVF is not set
|
||||
# CONFIG_I40E is not set
|
||||
# CONFIG_I40EVF is not set
|
||||
# CONFIG_FM10K is not set
|
||||
CONFIG_NET_VENDOR_I825XX=y
|
||||
# CONFIG_JME is not set
|
||||
CONFIG_NET_VENDOR_MARVELL=y
|
||||
@ -2030,6 +2052,7 @@ CONFIG_NET_VENDOR_NATSEMI=y
|
||||
# CONFIG_NATSEMI is not set
|
||||
# CONFIG_NS83820 is not set
|
||||
CONFIG_NET_VENDOR_NETRONOME=y
|
||||
# CONFIG_NFP_NETVF is not set
|
||||
CONFIG_NET_VENDOR_8390=y
|
||||
# CONFIG_AX88796 is not set
|
||||
# CONFIG_NE2K_PCI is not set
|
||||
@ -2095,6 +2118,7 @@ CONFIG_NET_VENDOR_WIZNET=y
|
||||
# CONFIG_FDDI is not set
|
||||
# CONFIG_HIPPI is not set
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_SWPHY=y
|
||||
|
||||
#
|
||||
# MII PHY device drivers
|
||||
@ -2127,9 +2151,23 @@ CONFIG_FIXED_PHY=y
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
# CONFIG_MDIO_BCM_UNIMAC is not set
|
||||
# CONFIG_INTEL_XWAY_PHY is not set
|
||||
# CONFIG_MDIO_HISI_FEMAC is not set
|
||||
# CONFIG_MICREL_KS8995MA is not set
|
||||
# CONFIG_PPP is not set
|
||||
CONFIG_PPP=m
|
||||
CONFIG_PPP_BSDCOMP=m
|
||||
CONFIG_PPP_DEFLATE=m
|
||||
CONFIG_PPP_FILTER=y
|
||||
CONFIG_PPP_MPPE=m
|
||||
CONFIG_PPP_MULTILINK=y
|
||||
# CONFIG_PPPOATM is not set
|
||||
CONFIG_PPPOE=m
|
||||
CONFIG_PPTP=m
|
||||
CONFIG_PPPOL2TP=m
|
||||
# CONFIG_PPP_ASYNC is not set
|
||||
# CONFIG_PPP_SYNC_TTY is not set
|
||||
# CONFIG_SLIP is not set
|
||||
CONFIG_SLHC=m
|
||||
CONFIG_USB_NET_DRIVERS=y
|
||||
# CONFIG_USB_CATC is not set
|
||||
# CONFIG_USB_KAWETH is not set
|
||||
@ -2410,7 +2448,6 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_ALTERA_UART is not set
|
||||
# CONFIG_SERIAL_IFX6X60 is not set
|
||||
# CONFIG_SERIAL_XILINX_PS_UART is not set
|
||||
# CONFIG_SERIAL_MPS2_UART is not set
|
||||
# CONFIG_SERIAL_ARC is not set
|
||||
# CONFIG_SERIAL_RP2 is not set
|
||||
# CONFIG_SERIAL_FSL_LPUART is not set
|
||||
@ -2570,11 +2607,10 @@ CONFIG_PINCTRL_ARMADA_38X=y
|
||||
CONFIG_PINCTRL_ARMADA_39X=y
|
||||
CONFIG_PINCTRL_ARMADA_XP=y
|
||||
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y
|
||||
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_GPIOLIB=y
|
||||
CONFIG_GPIO_DEVRES=y
|
||||
CONFIG_OF_GPIO=y
|
||||
CONFIG_GPIOLIB_IRQCHIP=y
|
||||
# CONFIG_DEBUG_GPIO is not set
|
||||
CONFIG_GPIO_SYSFS=y
|
||||
|
||||
@ -2670,6 +2706,7 @@ CONFIG_HWMON=y
|
||||
# CONFIG_SENSORS_F71805F is not set
|
||||
# CONFIG_SENSORS_F71882FG is not set
|
||||
# CONFIG_SENSORS_F75375S is not set
|
||||
# CONFIG_SENSORS_FTSTEUTATES is not set
|
||||
# CONFIG_SENSORS_GL518SM is not set
|
||||
# CONFIG_SENSORS_GL520SM is not set
|
||||
# CONFIG_SENSORS_G760A is not set
|
||||
@ -2728,6 +2765,7 @@ CONFIG_SENSORS_MAX31790=m
|
||||
# CONFIG_PMBUS is not set
|
||||
# CONFIG_SENSORS_SHT15 is not set
|
||||
# CONFIG_SENSORS_SHT21 is not set
|
||||
# CONFIG_SENSORS_SHT3x is not set
|
||||
# CONFIG_SENSORS_SHTC1 is not set
|
||||
# CONFIG_SENSORS_SIS5595 is not set
|
||||
# CONFIG_SENSORS_DME1737 is not set
|
||||
@ -2748,6 +2786,7 @@ CONFIG_SENSORS_MAX31790=m
|
||||
# CONFIG_SENSORS_AMC6821 is not set
|
||||
# CONFIG_SENSORS_INA209 is not set
|
||||
# CONFIG_SENSORS_INA2XX is not set
|
||||
# CONFIG_SENSORS_INA3221 is not set
|
||||
# CONFIG_SENSORS_TC74 is not set
|
||||
# CONFIG_SENSORS_THMC50 is not set
|
||||
# CONFIG_SENSORS_TMP102 is not set
|
||||
@ -3124,6 +3163,7 @@ CONFIG_SND_KIRKWOOD_SOC=y
|
||||
# Allwinner SoC Audio support
|
||||
#
|
||||
# CONFIG_SND_SUN4I_CODEC is not set
|
||||
# CONFIG_SND_SUN4I_I2S is not set
|
||||
# CONFIG_SND_SUN4I_SPDIF is not set
|
||||
# CONFIG_SND_SOC_XTFPGA_I2S is not set
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=y
|
||||
@ -3133,13 +3173,16 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
|
||||
#
|
||||
# CONFIG_SND_SOC_AC97_CODEC is not set
|
||||
# CONFIG_SND_SOC_ADAU1701 is not set
|
||||
# CONFIG_SND_SOC_ADAU7002 is not set
|
||||
# CONFIG_SND_SOC_AK4104 is not set
|
||||
# CONFIG_SND_SOC_AK4554 is not set
|
||||
# CONFIG_SND_SOC_AK4613 is not set
|
||||
# CONFIG_SND_SOC_AK4642 is not set
|
||||
# CONFIG_SND_SOC_AK5386 is not set
|
||||
# CONFIG_SND_SOC_ALC5623 is not set
|
||||
# CONFIG_SND_SOC_BT_SCO is not set
|
||||
# CONFIG_SND_SOC_CS35L32 is not set
|
||||
# CONFIG_SND_SOC_CS35L33 is not set
|
||||
CONFIG_SND_SOC_CS42L51=y
|
||||
CONFIG_SND_SOC_CS42L51_I2C=y
|
||||
# CONFIG_SND_SOC_CS42L52 is not set
|
||||
@ -3151,9 +3194,12 @@ CONFIG_SND_SOC_CS42L51_I2C=y
|
||||
# CONFIG_SND_SOC_CS4271_SPI is not set
|
||||
# CONFIG_SND_SOC_CS42XX8_I2C is not set
|
||||
# CONFIG_SND_SOC_CS4349 is not set
|
||||
# CONFIG_SND_SOC_CS53L30 is not set
|
||||
# CONFIG_SND_SOC_ES8328 is not set
|
||||
# CONFIG_SND_SOC_GTM601 is not set
|
||||
# CONFIG_SND_SOC_INNO_RK3036 is not set
|
||||
# CONFIG_SND_SOC_MAX98504 is not set
|
||||
# CONFIG_SND_SOC_MAX9860 is not set
|
||||
# CONFIG_SND_SOC_PCM1681 is not set
|
||||
# CONFIG_SND_SOC_PCM179X_I2C is not set
|
||||
# CONFIG_SND_SOC_PCM179X_SPI is not set
|
||||
@ -3203,7 +3249,9 @@ CONFIG_SND_SOC_WM8960=m
|
||||
# CONFIG_SND_SOC_WM8962 is not set
|
||||
# CONFIG_SND_SOC_WM8974 is not set
|
||||
# CONFIG_SND_SOC_WM8978 is not set
|
||||
# CONFIG_SND_SOC_WM8985 is not set
|
||||
# CONFIG_SND_SOC_TPA6130A2 is not set
|
||||
CONFIG_SND_SIMPLE_CARD_UTILS=y
|
||||
CONFIG_SND_SIMPLE_CARD=y
|
||||
# CONFIG_SOUND_PRIME is not set
|
||||
|
||||
@ -3251,6 +3299,7 @@ CONFIG_HID_CMEDIA=m
|
||||
# CONFIG_HID_TWINHAN is not set
|
||||
# CONFIG_HID_KENSINGTON is not set
|
||||
# CONFIG_HID_LCPOWER is not set
|
||||
# CONFIG_HID_LED is not set
|
||||
# CONFIG_HID_LENOVO is not set
|
||||
# CONFIG_HID_LOGITECH is not set
|
||||
# CONFIG_HID_MAGICMOUSE is not set
|
||||
@ -3285,6 +3334,7 @@ CONFIG_HID_CMEDIA=m
|
||||
# CONFIG_HID_ZEROPLUS is not set
|
||||
# CONFIG_HID_ZYDACRON is not set
|
||||
# CONFIG_HID_SENSOR_HUB is not set
|
||||
# CONFIG_HID_ALPS is not set
|
||||
|
||||
#
|
||||
# USB HID support
|
||||
@ -3401,7 +3451,6 @@ CONFIG_USB_STORAGE=y
|
||||
# CONFIG_USB_RIO500 is not set
|
||||
# CONFIG_USB_LEGOTOWER is not set
|
||||
# CONFIG_USB_LCD is not set
|
||||
# CONFIG_USB_LED is not set
|
||||
# CONFIG_USB_CYPRESS_CY7C63 is not set
|
||||
# CONFIG_USB_CYTHERM is not set
|
||||
# CONFIG_USB_IDMOUSE is not set
|
||||
@ -3430,7 +3479,6 @@ CONFIG_USB_ATM=m
|
||||
#
|
||||
# CONFIG_USB_PHY is not set
|
||||
# CONFIG_NOP_USB_XCEIV is not set
|
||||
# CONFIG_AM335X_PHY_USB is not set
|
||||
# CONFIG_USB_GPIO_VBUS is not set
|
||||
# CONFIG_USB_ISP1301 is not set
|
||||
# CONFIG_USB_ULPI is not set
|
||||
@ -3516,6 +3564,7 @@ CONFIG_LEDS_IS31FL32XX=m
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=y
|
||||
# CONFIG_LEDS_TRIGGER_ONESHOT is not set
|
||||
CONFIG_LEDS_TRIGGER_DISK=y
|
||||
# CONFIG_LEDS_TRIGGER_MTD is not set
|
||||
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
|
||||
# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set
|
||||
@ -3589,6 +3638,7 @@ CONFIG_RTC_DRV_DS1302=m
|
||||
# CONFIG_RTC_DRV_DS1343 is not set
|
||||
# CONFIG_RTC_DRV_DS1347 is not set
|
||||
# CONFIG_RTC_DRV_DS1390 is not set
|
||||
# CONFIG_RTC_DRV_MAX6916 is not set
|
||||
# CONFIG_RTC_DRV_R9701 is not set
|
||||
# CONFIG_RTC_DRV_RX4581 is not set
|
||||
CONFIG_RTC_DRV_RX6110=m
|
||||
@ -3712,6 +3762,7 @@ CONFIG_LNET_MAX_PAYLOAD=1048576
|
||||
# CONFIG_WILC1000_SDIO is not set
|
||||
# CONFIG_WILC1000_SPI is not set
|
||||
# CONFIG_MOST is not set
|
||||
# CONFIG_KS7010 is not set
|
||||
# CONFIG_GOLDFISH is not set
|
||||
# CONFIG_CHROME_PLATFORMS is not set
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
@ -3731,7 +3782,6 @@ CONFIG_CLK_QORIQ=y
|
||||
# CONFIG_COMMON_CLK_NXP is not set
|
||||
# CONFIG_COMMON_CLK_PXA is not set
|
||||
# CONFIG_COMMON_CLK_PIC32 is not set
|
||||
# CONFIG_COMMON_CLK_OXNAS is not set
|
||||
CONFIG_MVEBU_CLK_COMMON=y
|
||||
CONFIG_MVEBU_CLK_CPU=y
|
||||
CONFIG_MVEBU_CLK_COREDIV=y
|
||||
@ -3741,6 +3791,7 @@ CONFIG_ARMADA_38X_CLK=y
|
||||
CONFIG_ARMADA_39X_CLK=y
|
||||
CONFIG_ARMADA_XP_CLK=y
|
||||
CONFIG_DOVE_CLK=y
|
||||
# CONFIG_SUNXI_CCU is not set
|
||||
|
||||
#
|
||||
# Hardware Spinlock drivers
|
||||
@ -3775,6 +3826,10 @@ CONFIG_ORION_TIMER=y
|
||||
#
|
||||
# SOC (System On Chip) specific Drivers
|
||||
#
|
||||
|
||||
#
|
||||
# Broadcom SoC drivers
|
||||
#
|
||||
# CONFIG_SOC_BRCMSTB is not set
|
||||
# CONFIG_SUNXI_SRAM is not set
|
||||
# CONFIG_SOC_TI is not set
|
||||
@ -3838,6 +3893,7 @@ CONFIG_HAVE_ARM_SMCCC=y
|
||||
# File systems
|
||||
#
|
||||
CONFIG_DCACHE_WORD_ACCESS=y
|
||||
CONFIG_FS_IOMAP=y
|
||||
# CONFIG_EXT2_FS is not set
|
||||
CONFIG_EXT3_FS=y
|
||||
CONFIG_EXT3_FS_POSIX_ACL=y
|
||||
@ -3885,9 +3941,10 @@ CONFIG_F2FS_FS_POSIX_ACL=y
|
||||
# CONFIG_F2FS_FAULT_INJECTION is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
CONFIG_EXPORTFS=y
|
||||
# CONFIG_EXPORTFS_BLOCK_OPS is not set
|
||||
CONFIG_FILE_LOCKING=y
|
||||
CONFIG_MANDATORY_FILE_LOCKING=y
|
||||
CONFIG_FS_ENCRYPTION=m
|
||||
CONFIG_FS_ENCRYPTION=y
|
||||
CONFIG_FSNOTIFY=y
|
||||
CONFIG_DNOTIFY=y
|
||||
CONFIG_INOTIFY_USER=y
|
||||
@ -3997,6 +4054,7 @@ CONFIG_NFSD_V3_ACL=y
|
||||
CONFIG_NFSD_V4=y
|
||||
# CONFIG_NFSD_BLOCKLAYOUT is not set
|
||||
# CONFIG_NFSD_SCSILAYOUT is not set
|
||||
# CONFIG_NFSD_FLEXFILELAYOUT is not set
|
||||
# CONFIG_NFSD_FAULT_INJECTION is not set
|
||||
CONFIG_GRACE_PERIOD=y
|
||||
CONFIG_LOCKD=y
|
||||
@ -4257,6 +4315,9 @@ CONFIG_ENCRYPTED_KEYS=y
|
||||
# CONFIG_SECURITY_DMESG_RESTRICT is not set
|
||||
# CONFIG_SECURITY is not set
|
||||
# CONFIG_SECURITYFS is not set
|
||||
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y
|
||||
CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y
|
||||
# CONFIG_HARDENED_USERCOPY is not set
|
||||
CONFIG_DEFAULT_SECURITY_DAC=y
|
||||
CONFIG_DEFAULT_SECURITY=""
|
||||
CONFIG_XOR_BLOCKS=y
|
||||
@ -4278,7 +4339,11 @@ CONFIG_CRYPTO_RNG2=y
|
||||
CONFIG_CRYPTO_RNG_DEFAULT=y
|
||||
CONFIG_CRYPTO_AKCIPHER2=y
|
||||
CONFIG_CRYPTO_AKCIPHER=y
|
||||
CONFIG_CRYPTO_KPP2=y
|
||||
CONFIG_CRYPTO_KPP=y
|
||||
CONFIG_CRYPTO_RSA=y
|
||||
CONFIG_CRYPTO_DH=y
|
||||
CONFIG_CRYPTO_ECDH=y
|
||||
CONFIG_CRYPTO_MANAGER=y
|
||||
CONFIG_CRYPTO_MANAGER2=y
|
||||
CONFIG_CRYPTO_USER=m
|
||||
@ -4340,6 +4405,7 @@ CONFIG_CRYPTO_RMD320=m
|
||||
CONFIG_CRYPTO_SHA1=y
|
||||
CONFIG_CRYPTO_SHA256=y
|
||||
CONFIG_CRYPTO_SHA512=m
|
||||
CONFIG_CRYPTO_SHA3=y
|
||||
# CONFIG_CRYPTO_TGR192 is not set
|
||||
CONFIG_CRYPTO_WP512=m
|
||||
|
||||
@ -4485,3 +4551,5 @@ CONFIG_OID_REGISTRY=y
|
||||
CONFIG_SG_POOL=y
|
||||
CONFIG_ARCH_HAS_SG_CHAIN=y
|
||||
CONFIG_VIRTUALIZATION=y
|
||||
# CONFIG_VHOST_NET is not set
|
||||
# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 3.10.103 Kernel Configuration
|
||||
# Linux/arm 3.10.104 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_SYS_SUPPORTS_APM_EMULATION=y
|
||||
@ -4684,6 +4684,7 @@ CONFIG_BACKPORT_USB_NET_DRIVERS=y
|
||||
CONFIG_BACKPORT_USB_USBNET=m
|
||||
CONFIG_BACKPORT_USB_NET_CDCETHER=m
|
||||
CONFIG_BACKPORT_USB_NET_CDC_NCM=m
|
||||
CONFIG_BACKPORT_USB_NET_HUAWEI_CDC_NCM=m
|
||||
CONFIG_BACKPORT_USB_NET_CDC_MBIM=m
|
||||
CONFIG_BACKPORT_USB_NET_RNDIS_HOST=m
|
||||
CONFIG_BACKPORT_USB_NET_QMI_WWAN=m
|
||||
|
||||
@ -1395,9 +1395,9 @@ CONFIG_RTL8189FS=m
|
||||
#
|
||||
CONFIG_INPUT=y
|
||||
CONFIG_INPUT_FF_MEMLESS=m
|
||||
# CONFIG_INPUT_POLLDEV is not set
|
||||
CONFIG_INPUT_POLLDEV=m
|
||||
# CONFIG_INPUT_SPARSEKMAP is not set
|
||||
# CONFIG_INPUT_MATRIXKMAP is not set
|
||||
CONFIG_INPUT_MATRIXKMAP=m
|
||||
|
||||
#
|
||||
# Userland interfaces
|
||||
@ -1411,7 +1411,7 @@ CONFIG_INPUT_EVDEV=y
|
||||
# CONFIG_INPUT_EVBUG is not set
|
||||
# CONFIG_INPUT_KEYRESET is not set
|
||||
# CONFIG_INPUT_KEYCOMBO is not set
|
||||
CONFIG_INPUT_SW_DEVICE=m
|
||||
CONFIG_INPUT_SW_DEVICE=y
|
||||
|
||||
#
|
||||
# Input Device Drivers
|
||||
@ -1423,11 +1423,11 @@ CONFIG_KEYBOARD_ATKBD=y
|
||||
# CONFIG_KEYBOARD_QT1070 is not set
|
||||
# CONFIG_KEYBOARD_QT2160 is not set
|
||||
# CONFIG_KEYBOARD_LKKBD is not set
|
||||
# CONFIG_KEYBOARD_GPIO is not set
|
||||
# CONFIG_KEYBOARD_GPIO_POLLED is not set
|
||||
CONFIG_KEYBOARD_GPIO=m
|
||||
CONFIG_KEYBOARD_GPIO_POLLED=m
|
||||
# CONFIG_KEYBOARD_TCA6416 is not set
|
||||
# CONFIG_KEYBOARD_TCA8418 is not set
|
||||
# CONFIG_KEYBOARD_MATRIX is not set
|
||||
CONFIG_KEYBOARD_MATRIX=m
|
||||
CONFIG_KEYBOARD_LM8323=m
|
||||
# CONFIG_KEYBOARD_LM8333 is not set
|
||||
# CONFIG_KEYBOARD_MAX7359 is not set
|
||||
@ -1469,7 +1469,78 @@ CONFIG_INPUT_JOYSTICK=y
|
||||
# CONFIG_JOYSTICK_XPAD is not set
|
||||
# CONFIG_JOYSTICK_WALKERA0701 is not set
|
||||
# CONFIG_INPUT_TABLET is not set
|
||||
# CONFIG_INPUT_TOUCHSCREEN is not set
|
||||
CONFIG_INPUT_TOUCHSCREEN=y
|
||||
CONFIG_TOUCHSCREEN_ADS7846=m
|
||||
CONFIG_TOUCHSCREEN_AD7877=m
|
||||
CONFIG_TOUCHSCREEN_AD7879=m
|
||||
CONFIG_TOUCHSCREEN_AD7879_I2C=m
|
||||
CONFIG_TOUCHSCREEN_AD7879_SPI=m
|
||||
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
|
||||
CONFIG_TOUCHSCREEN_AUO_PIXCIR=m
|
||||
CONFIG_TOUCHSCREEN_BU21013=m
|
||||
CONFIG_TOUCHSCREEN_CY8CTMG110=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP_CORE=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP_I2C=m
|
||||
CONFIG_TOUCHSCREEN_CYTTSP_SPI=m
|
||||
CONFIG_TOUCHSCREEN_DYNAPRO=m
|
||||
CONFIG_TOUCHSCREEN_HAMPSHIRE=m
|
||||
CONFIG_TOUCHSCREEN_EETI=m
|
||||
CONFIG_TOUCHSCREEN_EGALAX=m
|
||||
CONFIG_TOUCHSCREEN_FUJITSU=m
|
||||
CONFIG_TOUCHSCREEN_ILI210X=m
|
||||
CONFIG_TOUCHSCREEN_GUNZE=m
|
||||
CONFIG_TOUCHSCREEN_ELO=m
|
||||
CONFIG_TOUCHSCREEN_WACOM_W8001=m
|
||||
CONFIG_TOUCHSCREEN_WACOM_I2C=m
|
||||
CONFIG_TOUCHSCREEN_MAX11801=m
|
||||
CONFIG_TOUCHSCREEN_MCS5000=m
|
||||
CONFIG_TOUCHSCREEN_MMS114=m
|
||||
CONFIG_TOUCHSCREEN_MTOUCH=m
|
||||
CONFIG_TOUCHSCREEN_INEXIO=m
|
||||
CONFIG_TOUCHSCREEN_MK712=m
|
||||
CONFIG_TOUCHSCREEN_PENMOUNT=m
|
||||
CONFIG_TOUCHSCREEN_EDT_FT5X06=m
|
||||
CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
|
||||
CONFIG_TOUCHSCREEN_TOUCHWIN=m
|
||||
CONFIG_TOUCHSCREEN_PIXCIR=m
|
||||
CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
|
||||
CONFIG_TOUCHSCREEN_USB_EGALAX=y
|
||||
CONFIG_TOUCHSCREEN_USB_PANJIT=y
|
||||
CONFIG_TOUCHSCREEN_USB_3M=y
|
||||
CONFIG_TOUCHSCREEN_USB_ITM=y
|
||||
CONFIG_TOUCHSCREEN_USB_ETURBO=y
|
||||
CONFIG_TOUCHSCREEN_USB_GUNZE=y
|
||||
CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
|
||||
CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
|
||||
CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
|
||||
CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
|
||||
CONFIG_TOUCHSCREEN_USB_GOTOP=y
|
||||
CONFIG_TOUCHSCREEN_USB_JASTEC=y
|
||||
CONFIG_TOUCHSCREEN_USB_ELO=y
|
||||
CONFIG_TOUCHSCREEN_USB_E2I=y
|
||||
CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
|
||||
CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
|
||||
CONFIG_TOUCHSCREEN_USB_NEXIO=y
|
||||
CONFIG_TOUCHSCREEN_USB_EASYTOUCH=y
|
||||
CONFIG_TOUCHSCREEN_TOUCHIT213=m
|
||||
CONFIG_TOUCHSCREEN_TSC_SERIO=m
|
||||
CONFIG_TOUCHSCREEN_TSC2005=m
|
||||
CONFIG_TOUCHSCREEN_TSC2007=m
|
||||
CONFIG_TOUCHSCREEN_W90X900=m
|
||||
CONFIG_TOUCHSCREEN_ST1232=m
|
||||
CONFIG_TOUCHSCREEN_TPS6507X=m
|
||||
CONFIG_TOUCHSCREEN_GT82X=m
|
||||
CONFIG_TOUCHSCREEN_SUN6I_TS=m
|
||||
CONFIG_TOUCHSCREEN_FT5X_TS=m
|
||||
CONFIG_TOUCHSCREEN_GT9XX_TS=m
|
||||
CONFIG_TOUCHSCREEN_GT9XXF_TS=m
|
||||
CONFIG_TOUCHSCREEN_GSLX680=m
|
||||
CONFIG_TOUCHSCREEN_GSLX680NEW=m
|
||||
CONFIG_TOUCHSCREEN_GT9XXNEW_TS=m
|
||||
CONFIG_TOUCHSCREEN_AW5X06_TS=m
|
||||
CONFIG_TOUCHSCREEN_GT818_TS=m
|
||||
CONFIG_TOUCHSCREEN_TU_TS=m
|
||||
CONFIG_TOUCHSCREEN_ICN83XX_TS=m
|
||||
CONFIG_INPUT_MISC=y
|
||||
# CONFIG_INPUT_AD714X is not set
|
||||
# CONFIG_INPUT_BMA150 is not set
|
||||
@ -2338,29 +2409,29 @@ CONFIG_SND_SOC_I2C_AND_SPI=y
|
||||
# HID support
|
||||
#
|
||||
CONFIG_HID=y
|
||||
# CONFIG_HID_BATTERY_STRENGTH is not set
|
||||
# CONFIG_HIDRAW is not set
|
||||
# CONFIG_UHID is not set
|
||||
CONFIG_HID_BATTERY_STRENGTH=y
|
||||
CONFIG_HIDRAW=y
|
||||
CONFIG_UHID=m
|
||||
CONFIG_HID_GENERIC=y
|
||||
|
||||
#
|
||||
# Special HID drivers
|
||||
#
|
||||
CONFIG_HID_A4TECH=y
|
||||
CONFIG_HID_A4TECH=m
|
||||
# CONFIG_HID_ACRUX is not set
|
||||
CONFIG_HID_APPLE=y
|
||||
CONFIG_HID_APPLE=m
|
||||
# CONFIG_HID_APPLEIR is not set
|
||||
# CONFIG_HID_AUREAL is not set
|
||||
CONFIG_HID_BELKIN=y
|
||||
CONFIG_HID_CHERRY=y
|
||||
CONFIG_HID_CHICONY=y
|
||||
CONFIG_HID_BELKIN=m
|
||||
CONFIG_HID_CHERRY=m
|
||||
CONFIG_HID_CHICONY=m
|
||||
# CONFIG_HID_PRODIKEYS is not set
|
||||
CONFIG_HID_CYPRESS=y
|
||||
CONFIG_HID_CYPRESS=m
|
||||
CONFIG_HID_DRAGONRISE=m
|
||||
CONFIG_DRAGONRISE_FF=y
|
||||
# CONFIG_HID_EMS_FF is not set
|
||||
# CONFIG_HID_ELECOM is not set
|
||||
CONFIG_HID_EZKEY=y
|
||||
CONFIG_HID_EZKEY=m
|
||||
# CONFIG_HID_HOLTEK is not set
|
||||
# CONFIG_HID_KEYTOUCH is not set
|
||||
# CONFIG_HID_KYE is not set
|
||||
@ -2369,19 +2440,19 @@ CONFIG_HID_EZKEY=y
|
||||
# CONFIG_HID_GYRATION is not set
|
||||
# CONFIG_HID_ICADE is not set
|
||||
# CONFIG_HID_TWINHAN is not set
|
||||
CONFIG_HID_KENSINGTON=y
|
||||
CONFIG_HID_KENSINGTON=m
|
||||
# CONFIG_HID_LCPOWER is not set
|
||||
# CONFIG_HID_LENOVO_TPKBD is not set
|
||||
CONFIG_HID_LOGITECH=y
|
||||
# CONFIG_HID_LOGITECH_DJ is not set
|
||||
CONFIG_HID_LOGITECH=m
|
||||
CONFIG_HID_LOGITECH_DJ=m
|
||||
# CONFIG_LOGITECH_FF is not set
|
||||
# CONFIG_LOGIRUMBLEPAD2_FF is not set
|
||||
# CONFIG_LOGIG940_FF is not set
|
||||
# CONFIG_LOGIWHEELS_FF is not set
|
||||
# CONFIG_HID_MAGICMOUSE is not set
|
||||
CONFIG_HID_MICROSOFT=y
|
||||
CONFIG_HID_MICROSOFT=m
|
||||
CONFIG_HID_MONTEREY=y
|
||||
# CONFIG_HID_MULTITOUCH is not set
|
||||
CONFIG_HID_MULTITOUCH=m
|
||||
# CONFIG_HID_NTRIG is not set
|
||||
# CONFIG_HID_ORTEK is not set
|
||||
# CONFIG_HID_PANTHERLORD is not set
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,6 +1,6 @@
|
||||
#
|
||||
# Automatically generated file; DO NOT EDIT.
|
||||
# Linux/arm 4.8.1 Kernel Configuration
|
||||
# Linux/arm 4.8.6 Kernel Configuration
|
||||
#
|
||||
CONFIG_ARM=y
|
||||
CONFIG_ARM_HAS_SG_CHAIN=y
|
||||
@ -54,8 +54,11 @@ CONFIG_POSIX_MQUEUE_SYSCTL=y
|
||||
CONFIG_CROSS_MEMORY_ATTACH=y
|
||||
CONFIG_FHANDLE=y
|
||||
CONFIG_USELIB=y
|
||||
# CONFIG_AUDIT is not set
|
||||
CONFIG_AUDIT=y
|
||||
CONFIG_HAVE_ARCH_AUDITSYSCALL=y
|
||||
CONFIG_AUDITSYSCALL=y
|
||||
CONFIG_AUDIT_WATCH=y
|
||||
CONFIG_AUDIT_TREE=y
|
||||
|
||||
#
|
||||
# IRQ subsystem
|
||||
@ -208,7 +211,8 @@ CONFIG_SLUB_CPU_PARTIAL=y
|
||||
CONFIG_TRACEPOINTS=y
|
||||
CONFIG_HAVE_OPROFILE=y
|
||||
# CONFIG_KPROBES is not set
|
||||
# CONFIG_JUMP_LABEL is not set
|
||||
CONFIG_JUMP_LABEL=y
|
||||
# CONFIG_STATIC_KEYS_SELFTEST is not set
|
||||
# CONFIG_UPROBES is not set
|
||||
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set
|
||||
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y
|
||||
@ -560,10 +564,7 @@ CONFIG_ATAGS=y
|
||||
# CONFIG_DEPRECATED_PARAM_STRUCT is not set
|
||||
CONFIG_ZBOOT_ROM_TEXT=0
|
||||
CONFIG_ZBOOT_ROM_BSS=0
|
||||
CONFIG_ARM_APPENDED_DTB=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT=y
|
||||
CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y
|
||||
# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set
|
||||
# CONFIG_ARM_APPENDED_DTB is not set
|
||||
CONFIG_CMDLINE=""
|
||||
# CONFIG_KEXEC is not set
|
||||
# CONFIG_CRASH_DUMP is not set
|
||||
@ -603,7 +604,7 @@ CONFIG_CPUFREQ_DT_PLATDEV=y
|
||||
CONFIG_ARM_BIG_LITTLE_CPUFREQ=m
|
||||
CONFIG_ARM_DT_BL_CPUFREQ=m
|
||||
# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set
|
||||
CONFIG_QORIQ_CPUFREQ=m
|
||||
# CONFIG_QORIQ_CPUFREQ is not set
|
||||
|
||||
#
|
||||
# CPU Idle
|
||||
@ -763,12 +764,12 @@ CONFIG_INET6_XFRM_MODE_TRANSPORT=m
|
||||
CONFIG_INET6_XFRM_MODE_TUNNEL=m
|
||||
CONFIG_INET6_XFRM_MODE_BEET=m
|
||||
CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
|
||||
# CONFIG_IPV6_VTI is not set
|
||||
CONFIG_IPV6_VTI=m
|
||||
CONFIG_IPV6_SIT=m
|
||||
CONFIG_IPV6_SIT_6RD=y
|
||||
CONFIG_IPV6_NDISC_NODETYPE=y
|
||||
CONFIG_IPV6_TUNNEL=m
|
||||
# CONFIG_IPV6_GRE is not set
|
||||
CONFIG_IPV6_GRE=m
|
||||
# CONFIG_IPV6_FOU is not set
|
||||
# CONFIG_IPV6_FOU_TUNNEL is not set
|
||||
CONFIG_IPV6_MULTIPLE_TABLES=y
|
||||
@ -865,6 +866,7 @@ CONFIG_NETFILTER_XT_SET=m
|
||||
#
|
||||
# Xtables targets
|
||||
#
|
||||
# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set
|
||||
CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
|
||||
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
|
||||
CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
|
||||
@ -1134,12 +1136,7 @@ CONFIG_RDS_TCP=m
|
||||
# CONFIG_RDS_DEBUG is not set
|
||||
CONFIG_TIPC=m
|
||||
CONFIG_TIPC_MEDIA_UDP=y
|
||||
CONFIG_ATM=m
|
||||
CONFIG_ATM_CLIP=m
|
||||
CONFIG_ATM_CLIP_NO_ICMP=y
|
||||
# CONFIG_ATM_LANE is not set
|
||||
CONFIG_ATM_BR2684=m
|
||||
CONFIG_ATM_BR2684_IPFILTER=y
|
||||
# CONFIG_ATM is not set
|
||||
CONFIG_L2TP=m
|
||||
# CONFIG_L2TP_DEBUGFS is not set
|
||||
CONFIG_L2TP_V3=y
|
||||
@ -1193,7 +1190,6 @@ CONFIG_NET_SCHED=y
|
||||
CONFIG_NET_SCH_CBQ=y
|
||||
CONFIG_NET_SCH_HTB=y
|
||||
CONFIG_NET_SCH_HFSC=m
|
||||
# CONFIG_NET_SCH_ATM is not set
|
||||
CONFIG_NET_SCH_PRIO=m
|
||||
CONFIG_NET_SCH_MULTIQ=m
|
||||
CONFIG_NET_SCH_RED=m
|
||||
@ -1204,17 +1200,17 @@ CONFIG_NET_SCH_TBF=m
|
||||
CONFIG_NET_SCH_GRED=m
|
||||
CONFIG_NET_SCH_DSMARK=m
|
||||
CONFIG_NET_SCH_NETEM=m
|
||||
# CONFIG_NET_SCH_DRR is not set
|
||||
CONFIG_NET_SCH_DRR=m
|
||||
CONFIG_NET_SCH_MQPRIO=m
|
||||
# CONFIG_NET_SCH_CHOKE is not set
|
||||
CONFIG_NET_SCH_CHOKE=m
|
||||
CONFIG_NET_SCH_QFQ=m
|
||||
CONFIG_NET_SCH_CODEL=m
|
||||
CONFIG_NET_SCH_FQ_CODEL=m
|
||||
# CONFIG_NET_SCH_FQ is not set
|
||||
# CONFIG_NET_SCH_HHF is not set
|
||||
# CONFIG_NET_SCH_PIE is not set
|
||||
CONFIG_NET_SCH_FQ=m
|
||||
CONFIG_NET_SCH_HHF=m
|
||||
CONFIG_NET_SCH_PIE=m
|
||||
CONFIG_NET_SCH_INGRESS=m
|
||||
# CONFIG_NET_SCH_PLUG is not set
|
||||
CONFIG_NET_SCH_PLUG=m
|
||||
|
||||
#
|
||||
# Classification
|
||||
@ -1227,13 +1223,13 @@ CONFIG_NET_CLS_FW=m
|
||||
CONFIG_NET_CLS_U32=m
|
||||
CONFIG_CLS_U32_PERF=y
|
||||
CONFIG_CLS_U32_MARK=y
|
||||
# CONFIG_NET_CLS_RSVP is not set
|
||||
# CONFIG_NET_CLS_RSVP6 is not set
|
||||
CONFIG_NET_CLS_RSVP=m
|
||||
CONFIG_NET_CLS_RSVP6=m
|
||||
CONFIG_NET_CLS_FLOW=m
|
||||
# CONFIG_NET_CLS_CGROUP is not set
|
||||
# CONFIG_NET_CLS_BPF is not set
|
||||
# CONFIG_NET_CLS_FLOWER is not set
|
||||
# CONFIG_NET_CLS_MATCHALL is not set
|
||||
CONFIG_NET_CLS_CGROUP=m
|
||||
CONFIG_NET_CLS_BPF=m
|
||||
CONFIG_NET_CLS_FLOWER=m
|
||||
CONFIG_NET_CLS_MATCHALL=m
|
||||
CONFIG_NET_EMATCH=y
|
||||
CONFIG_NET_EMATCH_STACK=32
|
||||
CONFIG_NET_EMATCH_CMP=m
|
||||
@ -1242,13 +1238,14 @@ CONFIG_NET_EMATCH_U32=m
|
||||
CONFIG_NET_EMATCH_META=m
|
||||
CONFIG_NET_EMATCH_TEXT=m
|
||||
CONFIG_NET_EMATCH_CANID=m
|
||||
# CONFIG_NET_EMATCH_IPSET is not set
|
||||
CONFIG_NET_EMATCH_IPSET=m
|
||||
CONFIG_NET_CLS_ACT=y
|
||||
CONFIG_NET_ACT_POLICE=m
|
||||
# CONFIG_NET_ACT_GACT is not set
|
||||
CONFIG_NET_ACT_GACT=m
|
||||
# CONFIG_GACT_PROB is not set
|
||||
CONFIG_NET_ACT_MIRRED=m
|
||||
CONFIG_NET_ACT_IPT=m
|
||||
# CONFIG_NET_ACT_NAT is not set
|
||||
CONFIG_NET_ACT_NAT=m
|
||||
# CONFIG_NET_ACT_PEDIT is not set
|
||||
# CONFIG_NET_ACT_SIMP is not set
|
||||
CONFIG_NET_ACT_SKBEDIT=m
|
||||
@ -1256,7 +1253,9 @@ CONFIG_NET_ACT_CSUM=m
|
||||
CONFIG_NET_ACT_VLAN=m
|
||||
CONFIG_NET_ACT_BPF=m
|
||||
CONFIG_NET_ACT_CONNMARK=m
|
||||
# CONFIG_NET_ACT_IFE is not set
|
||||
CONFIG_NET_ACT_IFE=m
|
||||
# CONFIG_NET_IFE_SKBMARK is not set
|
||||
# CONFIG_NET_IFE_SKBPRIO is not set
|
||||
CONFIG_NET_CLS_IND=y
|
||||
CONFIG_NET_SCH_FIFO=y
|
||||
CONFIG_DCB=y
|
||||
@ -1288,7 +1287,7 @@ CONFIG_CGROUP_NET_PRIO=y
|
||||
CONFIG_CGROUP_NET_CLASSID=y
|
||||
CONFIG_NET_RX_BUSY_POLL=y
|
||||
CONFIG_BQL=y
|
||||
# CONFIG_BPF_JIT is not set
|
||||
CONFIG_BPF_JIT=y
|
||||
CONFIG_NET_FLOW_LIMIT=y
|
||||
|
||||
#
|
||||
@ -1329,24 +1328,19 @@ CONFIG_CAN_VCAN=m
|
||||
CONFIG_CAN_SLCAN=m
|
||||
CONFIG_CAN_DEV=m
|
||||
CONFIG_CAN_CALC_BITTIMING=y
|
||||
# CONFIG_CAN_LEDS is not set
|
||||
CONFIG_CAN_FLEXCAN=m
|
||||
CONFIG_CAN_GRCAN=m
|
||||
CONFIG_CAN_LEDS=y
|
||||
# CONFIG_CAN_FLEXCAN is not set
|
||||
# CONFIG_CAN_GRCAN is not set
|
||||
CONFIG_CAN_SUN4I=m
|
||||
CONFIG_CAN_TI_HECC=m
|
||||
CONFIG_CAN_C_CAN=m
|
||||
CONFIG_CAN_C_CAN_PLATFORM=m
|
||||
CONFIG_CAN_CC770=m
|
||||
CONFIG_CAN_CC770_ISA=m
|
||||
CONFIG_CAN_CC770_PLATFORM=m
|
||||
# CONFIG_CAN_TI_HECC is not set
|
||||
# CONFIG_CAN_C_CAN is not set
|
||||
# CONFIG_CAN_CC770 is not set
|
||||
# CONFIG_CAN_IFI_CANFD is not set
|
||||
CONFIG_CAN_M_CAN=m
|
||||
CONFIG_CAN_RCAR=m
|
||||
CONFIG_CAN_RCAR_CANFD=m
|
||||
CONFIG_CAN_SJA1000=m
|
||||
CONFIG_CAN_SJA1000_ISA=m
|
||||
CONFIG_CAN_SJA1000_PLATFORM=m
|
||||
CONFIG_CAN_SOFTING=m
|
||||
# CONFIG_CAN_M_CAN is not set
|
||||
# CONFIG_CAN_RCAR is not set
|
||||
# CONFIG_CAN_RCAR_CANFD is not set
|
||||
# CONFIG_CAN_SJA1000 is not set
|
||||
# CONFIG_CAN_SOFTING is not set
|
||||
|
||||
#
|
||||
# CAN SPI interfaces
|
||||
@ -1413,7 +1407,7 @@ CONFIG_BT_BNEP_PROTO_FILTER=y
|
||||
CONFIG_BT_HIDP=m
|
||||
CONFIG_BT_HS=y
|
||||
CONFIG_BT_LE=y
|
||||
# CONFIG_BT_6LOWPAN is not set
|
||||
CONFIG_BT_6LOWPAN=m
|
||||
CONFIG_BT_LEDS=y
|
||||
# CONFIG_BT_SELFTEST is not set
|
||||
CONFIG_BT_DEBUGFS=y
|
||||
@ -1457,7 +1451,7 @@ CONFIG_WEXT_PROC=y
|
||||
CONFIG_WEXT_PRIV=y
|
||||
CONFIG_CFG80211=m
|
||||
# CONFIG_NL80211_TESTMODE is not set
|
||||
CONFIG_CFG80211_DEVELOPER_WARNINGS=y
|
||||
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
|
||||
# CONFIG_CFG80211_CERTIFICATION_ONUS is not set
|
||||
CONFIG_CFG80211_DEFAULT_PS=y
|
||||
# CONFIG_CFG80211_DEBUGFS is not set
|
||||
@ -1667,7 +1661,7 @@ CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y
|
||||
CONFIG_PARPORT=m
|
||||
# CONFIG_PARPORT_PC is not set
|
||||
# CONFIG_PARPORT_GSC is not set
|
||||
CONFIG_PARPORT_AX88796=m
|
||||
# CONFIG_PARPORT_AX88796 is not set
|
||||
# CONFIG_PARPORT_1284 is not set
|
||||
CONFIG_PARPORT_NOT_PC=y
|
||||
CONFIG_BLK_DEV=y
|
||||
@ -1679,7 +1673,7 @@ CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
|
||||
CONFIG_BLK_DEV_CRYPTOLOOP=m
|
||||
# CONFIG_BLK_DEV_DRBD is not set
|
||||
CONFIG_BLK_DEV_NBD=m
|
||||
CONFIG_BLK_DEV_RAM=y
|
||||
CONFIG_BLK_DEV_RAM=m
|
||||
CONFIG_BLK_DEV_RAM_COUNT=4
|
||||
CONFIG_BLK_DEV_RAM_SIZE=4096
|
||||
# CONFIG_CDROM_PKTCDVD is not set
|
||||
@ -1924,9 +1918,6 @@ CONFIG_TUN=m
|
||||
# CONFIG_TUN_VNET_CROSS_LE is not set
|
||||
CONFIG_VETH=m
|
||||
# CONFIG_NLMON is not set
|
||||
CONFIG_ATM_DRIVERS=y
|
||||
# CONFIG_ATM_DUMMY is not set
|
||||
# CONFIG_ATM_TCP is not set
|
||||
|
||||
#
|
||||
# CAIF transport drivers
|
||||
@ -1937,11 +1928,6 @@ CONFIG_ATM_DRIVERS=y
|
||||
#
|
||||
# CONFIG_NET_DSA_MV88E6060 is not set
|
||||
# CONFIG_NET_DSA_BCM_SF2 is not set
|
||||
CONFIG_B53=m
|
||||
CONFIG_B53_SPI_DRIVER=m
|
||||
CONFIG_B53_MDIO_DRIVER=m
|
||||
CONFIG_B53_MMAP_DRIVER=m
|
||||
CONFIG_B53_SRAB_DRIVER=m
|
||||
# CONFIG_NET_DSA_MV88E6XXX is not set
|
||||
CONFIG_ETHERNET=y
|
||||
CONFIG_NET_VENDOR_ALLWINNER=y
|
||||
@ -1954,17 +1940,9 @@ CONFIG_SUN4I_EMAC=y
|
||||
# CONFIG_NET_VENDOR_CIRRUS is not set
|
||||
# CONFIG_DM9000 is not set
|
||||
# CONFIG_DNET is not set
|
||||
CONFIG_NET_VENDOR_EZCHIP=y
|
||||
# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set
|
||||
# CONFIG_NET_VENDOR_EZCHIP is not set
|
||||
# CONFIG_NET_VENDOR_FARADAY is not set
|
||||
CONFIG_NET_VENDOR_HISILICON=y
|
||||
# CONFIG_HIX5HD2_GMAC is not set
|
||||
# CONFIG_HISI_FEMAC is not set
|
||||
CONFIG_HIP04_ETH=m
|
||||
CONFIG_HNS_MDIO=m
|
||||
# CONFIG_HNS is not set
|
||||
# CONFIG_HNS_DSAF is not set
|
||||
# CONFIG_HNS_ENET is not set
|
||||
# CONFIG_NET_VENDOR_HISILICON is not set
|
||||
# CONFIG_NET_VENDOR_INTEL is not set
|
||||
# CONFIG_NET_VENDOR_MARVELL is not set
|
||||
# CONFIG_NET_VENDOR_MICREL is not set
|
||||
@ -1973,12 +1951,11 @@ CONFIG_ENC28J60=m
|
||||
CONFIG_ENC28J60_WRITEVERIFY=y
|
||||
# CONFIG_ENCX24J600 is not set
|
||||
# CONFIG_NET_VENDOR_NATSEMI is not set
|
||||
CONFIG_NET_VENDOR_NETRONOME=y
|
||||
# CONFIG_NET_VENDOR_NETRONOME is not set
|
||||
# CONFIG_ETHOC is not set
|
||||
CONFIG_NET_VENDOR_QUALCOMM=y
|
||||
# CONFIG_QCA7000 is not set
|
||||
CONFIG_NET_VENDOR_RENESAS=y
|
||||
CONFIG_NET_VENDOR_ROCKER=y
|
||||
# CONFIG_NET_VENDOR_QUALCOMM is not set
|
||||
# CONFIG_NET_VENDOR_RENESAS is not set
|
||||
# CONFIG_NET_VENDOR_ROCKER is not set
|
||||
# CONFIG_NET_VENDOR_SAMSUNG is not set
|
||||
# CONFIG_NET_VENDOR_SEEQ is not set
|
||||
# CONFIG_NET_VENDOR_SMSC is not set
|
||||
@ -1993,31 +1970,33 @@ CONFIG_SYNOPSYS_DWC_ETH_QOS=m
|
||||
# CONFIG_NET_VENDOR_WIZNET is not set
|
||||
CONFIG_PHYLIB=y
|
||||
CONFIG_SWPHY=y
|
||||
CONFIG_SWCONFIG=y
|
||||
CONFIG_SWCONFIG_LEDS=y
|
||||
|
||||
#
|
||||
# MII PHY device drivers
|
||||
#
|
||||
CONFIG_AQUANTIA_PHY=m
|
||||
CONFIG_AT803X_PHY=m
|
||||
CONFIG_AMD_PHY=m
|
||||
# CONFIG_AQUANTIA_PHY is not set
|
||||
# CONFIG_AT803X_PHY is not set
|
||||
# CONFIG_AMD_PHY is not set
|
||||
CONFIG_MARVELL_PHY=m
|
||||
CONFIG_DAVICOM_PHY=m
|
||||
CONFIG_QSEMI_PHY=m
|
||||
CONFIG_LXT_PHY=m
|
||||
CONFIG_CICADA_PHY=m
|
||||
CONFIG_VITESSE_PHY=m
|
||||
CONFIG_TERANETICS_PHY=m
|
||||
CONFIG_SMSC_PHY=m
|
||||
# CONFIG_DAVICOM_PHY is not set
|
||||
# CONFIG_QSEMI_PHY is not set
|
||||
# CONFIG_LXT_PHY is not set
|
||||
# CONFIG_CICADA_PHY is not set
|
||||
# CONFIG_VITESSE_PHY is not set
|
||||
# CONFIG_TERANETICS_PHY is not set
|
||||
# CONFIG_SMSC_PHY is not set
|
||||
CONFIG_BCM_NET_PHYLIB=m
|
||||
CONFIG_BROADCOM_PHY=m
|
||||
# CONFIG_BCM7XXX_PHY is not set
|
||||
CONFIG_BCM87XX_PHY=m
|
||||
CONFIG_ICPLUS_PHY=m
|
||||
# CONFIG_ICPLUS_PHY is not set
|
||||
CONFIG_REALTEK_PHY=m
|
||||
CONFIG_NATIONAL_PHY=m
|
||||
CONFIG_STE10XP=m
|
||||
CONFIG_LSI_ET1011C_PHY=m
|
||||
CONFIG_MICREL_PHY=m
|
||||
# CONFIG_NATIONAL_PHY is not set
|
||||
# CONFIG_STE10XP is not set
|
||||
# CONFIG_LSI_ET1011C_PHY is not set
|
||||
# CONFIG_MICREL_PHY is not set
|
||||
CONFIG_DP83848_PHY=m
|
||||
# CONFIG_DP83867_PHY is not set
|
||||
CONFIG_MICROCHIP_PHY=m
|
||||
@ -2029,6 +2008,12 @@ CONFIG_MDIO_SUN4I=y
|
||||
# CONFIG_MDIO_BCM_UNIMAC is not set
|
||||
# CONFIG_INTEL_XWAY_PHY is not set
|
||||
# CONFIG_MDIO_HISI_FEMAC is not set
|
||||
CONFIG_B53=y
|
||||
CONFIG_B53_SPI_DRIVER=y
|
||||
CONFIG_B53_PHY_DRIVER=y
|
||||
CONFIG_B53_MMAP_DRIVER=y
|
||||
CONFIG_B53_SRAB_DRIVER=y
|
||||
CONFIG_B53_PHY_FIXUP=y
|
||||
# CONFIG_MICREL_KS8995MA is not set
|
||||
# CONFIG_PLIP is not set
|
||||
CONFIG_PPP=m
|
||||
@ -2037,7 +2022,6 @@ CONFIG_PPP_DEFLATE=m
|
||||
CONFIG_PPP_FILTER=y
|
||||
CONFIG_PPP_MPPE=m
|
||||
# CONFIG_PPP_MULTILINK is not set
|
||||
# CONFIG_PPPOATM is not set
|
||||
CONFIG_PPPOE=m
|
||||
CONFIG_PPTP=m
|
||||
CONFIG_PPPOL2TP=m
|
||||
@ -2194,19 +2178,13 @@ CONFIG_RTLWIFI_USB=m
|
||||
# CONFIG_RTLWIFI_DEBUG is not set
|
||||
CONFIG_RTL8192C_COMMON=m
|
||||
# CONFIG_RTL8XXXU is not set
|
||||
CONFIG_WLAN_VENDOR_RSI=y
|
||||
# CONFIG_RSI_91X is not set
|
||||
CONFIG_WLAN_VENDOR_ST=y
|
||||
# CONFIG_CW1200 is not set
|
||||
CONFIG_WLAN_VENDOR_TI=y
|
||||
# CONFIG_WL1251 is not set
|
||||
# CONFIG_WL12XX is not set
|
||||
# CONFIG_WL18XX is not set
|
||||
# CONFIG_WLCORE is not set
|
||||
# CONFIG_WLAN_VENDOR_RSI is not set
|
||||
# CONFIG_WLAN_VENDOR_ST is not set
|
||||
# CONFIG_WLAN_VENDOR_TI is not set
|
||||
CONFIG_WLAN_VENDOR_ZYDAS=y
|
||||
# CONFIG_USB_ZD1201 is not set
|
||||
# CONFIG_ZD1211RW is not set
|
||||
CONFIG_MAC80211_HWSIM=m
|
||||
# CONFIG_MAC80211_HWSIM is not set
|
||||
CONFIG_USB_NET_RNDIS_WLAN=m
|
||||
|
||||
#
|
||||
@ -2448,7 +2426,7 @@ CONFIG_SERIAL_CORE_CONSOLE=y
|
||||
# CONFIG_SERIAL_XILINX_PS_UART is not set
|
||||
# CONFIG_SERIAL_ARC is not set
|
||||
# CONFIG_SERIAL_FSL_LPUART is not set
|
||||
CONFIG_SERIAL_CONEXANT_DIGICOLOR=m
|
||||
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set
|
||||
# CONFIG_SERIAL_ST_ASC is not set
|
||||
CONFIG_SERIAL_STM32=m
|
||||
# CONFIG_TTY_PRINTK is not set
|
||||
@ -2494,9 +2472,9 @@ CONFIG_I2C_ALGOBIT=y
|
||||
#
|
||||
# CONFIG_I2C_CBUS_GPIO is not set
|
||||
# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
|
||||
CONFIG_I2C_EMEV2=m
|
||||
# CONFIG_I2C_GPIO is not set
|
||||
CONFIG_I2C_MV64XXX=y
|
||||
# CONFIG_I2C_EMEV2 is not set
|
||||
CONFIG_I2C_GPIO=m
|
||||
# CONFIG_I2C_MV64XXX is not set
|
||||
# CONFIG_I2C_OCORES is not set
|
||||
# CONFIG_I2C_PCA_PLATFORM is not set
|
||||
# CONFIG_I2C_PXA_PCI is not set
|
||||
@ -2518,7 +2496,7 @@ CONFIG_I2C_SUN6I_P2WI=m
|
||||
#
|
||||
# Other I2C/SMBus bus drivers
|
||||
#
|
||||
CONFIG_I2C_STUB=m
|
||||
# CONFIG_I2C_STUB is not set
|
||||
CONFIG_I2C_SLAVE=y
|
||||
CONFIG_I2C_SLAVE_EEPROM=m
|
||||
# CONFIG_I2C_DEBUG_CORE is not set
|
||||
@ -2621,7 +2599,7 @@ CONFIG_GPIO_SYSFS=y
|
||||
# Memory mapped GPIO drivers
|
||||
#
|
||||
# CONFIG_GPIO_74XX_MMIO is not set
|
||||
CONFIG_GPIO_ALTERA=m
|
||||
# CONFIG_GPIO_ALTERA is not set
|
||||
# CONFIG_GPIO_DWAPB is not set
|
||||
# CONFIG_GPIO_EM is not set
|
||||
# CONFIG_GPIO_GENERIC_PLATFORM is not set
|
||||
@ -2719,7 +2697,7 @@ CONFIG_AXP288_FUEL_GAUGE=m
|
||||
# CONFIG_CHARGER_SMB347 is not set
|
||||
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
|
||||
# CONFIG_CHARGER_RT9455 is not set
|
||||
CONFIG_AXP20X_POWER=y
|
||||
CONFIG_AXP20X_POWER=m
|
||||
CONFIG_POWER_RESET=y
|
||||
# CONFIG_POWER_RESET_BRCMKONA is not set
|
||||
# CONFIG_POWER_RESET_BRCMSTB is not set
|
||||
@ -2815,10 +2793,10 @@ CONFIG_SENSORS_LM95245=m
|
||||
CONFIG_SENSORS_PC87360=m
|
||||
CONFIG_SENSORS_PC87427=m
|
||||
CONFIG_SENSORS_NTC_THERMISTOR=m
|
||||
CONFIG_SENSORS_NCT6683=m
|
||||
CONFIG_SENSORS_NCT6775=m
|
||||
CONFIG_SENSORS_NCT7802=m
|
||||
CONFIG_SENSORS_NCT7904=m
|
||||
# CONFIG_SENSORS_NCT6683 is not set
|
||||
# CONFIG_SENSORS_NCT6775 is not set
|
||||
# CONFIG_SENSORS_NCT7802 is not set
|
||||
# CONFIG_SENSORS_NCT7904 is not set
|
||||
CONFIG_SENSORS_PCF8591=m
|
||||
# CONFIG_PMBUS is not set
|
||||
CONFIG_SENSORS_PWM_FAN=m
|
||||
@ -2826,16 +2804,16 @@ CONFIG_SENSORS_SHT15=m
|
||||
CONFIG_SENSORS_SHT21=m
|
||||
CONFIG_SENSORS_SHT3x=m
|
||||
CONFIG_SENSORS_SHTC1=m
|
||||
CONFIG_SENSORS_DME1737=m
|
||||
CONFIG_SENSORS_EMC1403=m
|
||||
CONFIG_SENSORS_EMC2103=m
|
||||
CONFIG_SENSORS_EMC6W201=m
|
||||
CONFIG_SENSORS_SMSC47M1=m
|
||||
CONFIG_SENSORS_SMSC47M192=m
|
||||
CONFIG_SENSORS_SMSC47B397=m
|
||||
CONFIG_SENSORS_SCH56XX_COMMON=m
|
||||
CONFIG_SENSORS_SCH5627=m
|
||||
CONFIG_SENSORS_SCH5636=m
|
||||
# CONFIG_SENSORS_DME1737 is not set
|
||||
# CONFIG_SENSORS_EMC1403 is not set
|
||||
# CONFIG_SENSORS_EMC2103 is not set
|
||||
# CONFIG_SENSORS_EMC6W201 is not set
|
||||
# CONFIG_SENSORS_SMSC47M1 is not set
|
||||
# CONFIG_SENSORS_SMSC47M192 is not set
|
||||
# CONFIG_SENSORS_SMSC47B397 is not set
|
||||
# CONFIG_SENSORS_SCH56XX_COMMON is not set
|
||||
# CONFIG_SENSORS_SCH5627 is not set
|
||||
# CONFIG_SENSORS_SCH5636 is not set
|
||||
CONFIG_SENSORS_SMM665=m
|
||||
CONFIG_SENSORS_ADC128D818=m
|
||||
CONFIG_SENSORS_ADS1015=m
|
||||
@ -2851,17 +2829,16 @@ CONFIG_SENSORS_TMP102=m
|
||||
CONFIG_SENSORS_TMP103=m
|
||||
CONFIG_SENSORS_TMP401=m
|
||||
CONFIG_SENSORS_TMP421=m
|
||||
CONFIG_SENSORS_VT1211=m
|
||||
CONFIG_SENSORS_W83781D=m
|
||||
CONFIG_SENSORS_W83791D=m
|
||||
CONFIG_SENSORS_W83792D=m
|
||||
CONFIG_SENSORS_W83793=m
|
||||
CONFIG_SENSORS_W83795=m
|
||||
# CONFIG_SENSORS_W83795_FANCTRL is not set
|
||||
CONFIG_SENSORS_W83L785TS=m
|
||||
CONFIG_SENSORS_W83L786NG=m
|
||||
CONFIG_SENSORS_W83627HF=m
|
||||
CONFIG_SENSORS_W83627EHF=m
|
||||
# CONFIG_SENSORS_VT1211 is not set
|
||||
# CONFIG_SENSORS_W83781D is not set
|
||||
# CONFIG_SENSORS_W83791D is not set
|
||||
# CONFIG_SENSORS_W83792D is not set
|
||||
# CONFIG_SENSORS_W83793 is not set
|
||||
# CONFIG_SENSORS_W83795 is not set
|
||||
# CONFIG_SENSORS_W83L785TS is not set
|
||||
# CONFIG_SENSORS_W83L786NG is not set
|
||||
# CONFIG_SENSORS_W83627HF is not set
|
||||
# CONFIG_SENSORS_W83627EHF is not set
|
||||
CONFIG_THERMAL=m
|
||||
CONFIG_THERMAL_HWMON=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
@ -3128,7 +3105,7 @@ CONFIG_RC_DEVICES=y
|
||||
# CONFIG_IR_IGUANA is not set
|
||||
# CONFIG_IR_TTUSBIR is not set
|
||||
# CONFIG_RC_LOOPBACK is not set
|
||||
# CONFIG_IR_GPIO_CIR is not set
|
||||
CONFIG_IR_GPIO_CIR=m
|
||||
CONFIG_IR_SUNXI=m
|
||||
CONFIG_MEDIA_USB_SUPPORT=y
|
||||
|
||||
@ -3254,7 +3231,7 @@ CONFIG_DVB_USB_DTV5100=m
|
||||
CONFIG_DVB_USB_FRIIO=m
|
||||
CONFIG_DVB_USB_AZ6027=m
|
||||
CONFIG_DVB_USB_TECHNISAT_USB2=m
|
||||
CONFIG_DVB_USB_V2=y
|
||||
CONFIG_DVB_USB_V2=m
|
||||
CONFIG_DVB_USB_AF9015=m
|
||||
CONFIG_DVB_USB_AF9035=m
|
||||
CONFIG_DVB_USB_ANYSEE=m
|
||||
@ -3298,8 +3275,7 @@ CONFIG_VIDEO_VIVID=m
|
||||
# CONFIG_VIDEO_VIVID_CEC is not set
|
||||
CONFIG_VIDEO_VIVID_MAX_DEVS=64
|
||||
CONFIG_VIDEO_VIM2M=m
|
||||
CONFIG_DVB_PLATFORM_DRIVERS=y
|
||||
CONFIG_DVB_C8SECTPFE=m
|
||||
# CONFIG_DVB_PLATFORM_DRIVERS is not set
|
||||
|
||||
#
|
||||
# Supported MMC/SDIO adapters
|
||||
@ -3340,7 +3316,7 @@ CONFIG_CYPRESS_FIRMWARE=m
|
||||
CONFIG_DVB_B2C2_FLEXCOP=m
|
||||
CONFIG_SMS_SIANO_MDTV=m
|
||||
CONFIG_SMS_SIANO_RC=y
|
||||
CONFIG_SMS_SIANO_DEBUGFS=y
|
||||
# CONFIG_SMS_SIANO_DEBUGFS is not set
|
||||
CONFIG_VIDEO_V4L2_TPG=m
|
||||
|
||||
#
|
||||
@ -3682,7 +3658,7 @@ CONFIG_DRM=y
|
||||
CONFIG_DRM_KMS_HELPER=y
|
||||
CONFIG_DRM_KMS_FB_HELPER=y
|
||||
CONFIG_DRM_FBDEV_EMULATION=y
|
||||
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set
|
||||
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
|
||||
CONFIG_DRM_GEM_CMA_HELPER=y
|
||||
CONFIG_DRM_KMS_CMA_HELPER=y
|
||||
|
||||
@ -3825,7 +3801,7 @@ CONFIG_SND_PCM_TIMER=y
|
||||
# CONFIG_SND_DYNAMIC_MINORS is not set
|
||||
CONFIG_SND_SUPPORT_OLD_API=y
|
||||
CONFIG_SND_PROC_FS=y
|
||||
CONFIG_SND_VERBOSE_PROCFS=y
|
||||
# CONFIG_SND_VERBOSE_PROCFS is not set
|
||||
# CONFIG_SND_VERBOSE_PRINTK is not set
|
||||
# CONFIG_SND_DEBUG is not set
|
||||
CONFIG_SND_VMASTER=y
|
||||
@ -4296,7 +4272,6 @@ CONFIG_USB_EZUSB_FX2=m
|
||||
# CONFIG_USB_HSIC_USB3503 is not set
|
||||
# CONFIG_USB_LINK_LAYER_TEST is not set
|
||||
CONFIG_USB_CHAOSKEY=m
|
||||
# CONFIG_USB_ATM is not set
|
||||
|
||||
#
|
||||
# USB Physical Layer drivers
|
||||
@ -5175,7 +5150,7 @@ CONFIG_ARM_PMU=y
|
||||
CONFIG_NVMEM=m
|
||||
CONFIG_NVMEM_SUNXI_SID=m
|
||||
CONFIG_STM=m
|
||||
CONFIG_STM_DUMMY=m
|
||||
# CONFIG_STM_DUMMY is not set
|
||||
CONFIG_STM_SOURCE_CONSOLE=m
|
||||
# CONFIG_STM_SOURCE_HEARTBEAT is not set
|
||||
# CONFIG_INTEL_TH is not set
|
||||
@ -5241,7 +5216,7 @@ CONFIG_F2FS_FS_XATTR=y
|
||||
CONFIG_F2FS_FS_POSIX_ACL=y
|
||||
# CONFIG_F2FS_FS_SECURITY is not set
|
||||
# CONFIG_F2FS_CHECK_FS is not set
|
||||
# CONFIG_F2FS_FS_ENCRYPTION is not set
|
||||
CONFIG_F2FS_FS_ENCRYPTION=y
|
||||
# CONFIG_F2FS_IO_TRACE is not set
|
||||
# CONFIG_F2FS_FAULT_INJECTION is not set
|
||||
CONFIG_FS_POSIX_ACL=y
|
||||
@ -5889,9 +5864,10 @@ CONFIG_CRC32_SLICEBY8=y
|
||||
# CONFIG_CRC32_SLICEBY4 is not set
|
||||
# CONFIG_CRC32_SARWATE is not set
|
||||
# CONFIG_CRC32_BIT is not set
|
||||
CONFIG_CRC7=m
|
||||
CONFIG_CRC7=y
|
||||
CONFIG_LIBCRC32C=y
|
||||
CONFIG_CRC8=m
|
||||
CONFIG_CRC8=y
|
||||
CONFIG_AUDIT_GENERIC=y
|
||||
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set
|
||||
# CONFIG_RANDOM32_SELFTEST is not set
|
||||
CONFIG_842_COMPRESS=m
|
||||
@ -5934,7 +5910,7 @@ CONFIG_GLOB=y
|
||||
CONFIG_NLATTR=y
|
||||
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
|
||||
CONFIG_CLZ_TAB=y
|
||||
# CONFIG_CORDIC is not set
|
||||
CONFIG_CORDIC=y
|
||||
# CONFIG_DDR is not set
|
||||
# CONFIG_IRQ_POLL is not set
|
||||
CONFIG_MPILIB=m
|
||||
|
||||
@ -23,7 +23,7 @@ case $BRANCH in
|
||||
|
||||
dev)
|
||||
KERNELSOURCE='https://github.com/SolidRun/linux-stable'
|
||||
KERNELBRANCH='branch:linux-4.4.y-clearfog'
|
||||
KERNELBRANCH='branch:linux-4.4.y-marvell'
|
||||
KERNELDIR='linux-armada-modern'
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -150,7 +150,8 @@ case $RELEASE in
|
||||
;;
|
||||
xenial)
|
||||
PACKAGE_LIST_RELEASE="man-db wget nano libpam-systemd software-properties-common libnss-myhostname f2fs-tools iperf3 paprefs"
|
||||
PACKAGE_LIST_DESKTOP="$PACKAGE_LIST_DESKTOP libreoffice-writer libreoffice-style-tango libreoffice-gtk thunderbird firefox gnome-icon-theme-full tango-icon-theme policykit-1"
|
||||
PACKAGE_LIST_DESKTOP="$PACKAGE_LIST_DESKTOP libreoffice-writer libreoffice-style-tango libreoffice-gtk thunderbird firefox gnome-icon-theme-full tango-icon-theme \
|
||||
policykit-1 language-selector-gnome"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
||||
@ -498,8 +498,8 @@ sign_and_compress()
|
||||
display_alert "Done building" "$DEST/images/${version}.img" "info"
|
||||
else
|
||||
display_alert "Signing and compressing" "Please wait!" "info"
|
||||
# stage: generate sha256sum
|
||||
sha256sum -b ${version}.img > sha256sum
|
||||
# stage: generate sha256sum.sha
|
||||
sha256sum -b ${version}.img > sha256sum.sha
|
||||
# stage: sign with PGP
|
||||
if [[ -n $GPG_PASS ]]; then
|
||||
echo $GPG_PASS | gpg --passphrase-fd 0 --armor --detach-sign --batch --yes ${version}.img
|
||||
@ -508,17 +508,17 @@ sign_and_compress()
|
||||
if [[ $SEVENZIP == yes ]]; then
|
||||
local filename=$DEST/images/${version}.7z
|
||||
if [[ $BUILD_ALL == yes ]]; then
|
||||
nice -n 19 bash -c "7za a -t7z -bd -m0=lzma2 -mx=3 -mfb=64 -md=32m -ms=on $filename ${version}.img armbian.txt *.asc sha256sum >/dev/null 2>&1 \
|
||||
nice -n 19 bash -c "7za a -t7z -bd -m0=lzma2 -mx=3 -mfb=64 -md=32m -ms=on $filename ${version}.img armbian.txt *.asc sha256sum.sha >/dev/null 2>&1 \
|
||||
; [[ -n '$SEND_TO_SERVER' ]] && rsync -arP $filename -e 'ssh -p 22' $SEND_TO_SERVER"
|
||||
else
|
||||
7za a -t7z -bd -m0=lzma2 -mx=3 -mfb=64 -md=32m -ms=on $filename ${version}.img armbian.txt *.asc sha256sum >/dev/null 2>&1
|
||||
7za a -t7z -bd -m0=lzma2 -mx=3 -mfb=64 -md=32m -ms=on $filename ${version}.img armbian.txt *.asc sha256sum.sha >/dev/null 2>&1
|
||||
[[ -n $SEND_TO_SERVER ]] && rsync -arP $filename -e 'ssh -p 22' $SEND_TO_SERVER
|
||||
fi
|
||||
else
|
||||
local filename=$DEST/images/${version}.zip
|
||||
zip -FSq $filename ${version}.img armbian.txt *.asc sha256sum
|
||||
zip -FSq $filename ${version}.img armbian.txt *.asc sha256sum.sha
|
||||
fi
|
||||
rm -f ${version}.img *.asc armbian.txt sha256sum
|
||||
rm -f ${version}.img *.asc armbian.txt sha256sum.sha
|
||||
if [[ $BUILD_ALL == yes ]]; then
|
||||
cd .. && rmdir "${TEMP_DIR}"
|
||||
else
|
||||
|
||||
@ -23,7 +23,7 @@ build_firmware()
|
||||
cp -R $SRC/lib/bin/firmware-overlay/* $SOURCES/$plugin_dir/lib/firmware
|
||||
|
||||
# cleanup what's not needed for sure
|
||||
rm -rf $SOURCES/$plugin_dir/lib/firmware/{amdgpu,amd-ucode,radeon,nvidia,matrox}
|
||||
rm -rf $SOURCES/$plugin_dir/lib/firmware/{amdgpu,amd-ucode,radeon,nvidia,matrox,.git}
|
||||
cd $SOURCES/$plugin_dir
|
||||
|
||||
# set up control file
|
||||
|
||||
20
main.sh
20
main.sh
@ -47,8 +47,8 @@ date +"%d_%m_%Y-%H_%M_%S" > $DEST/debug/timestamp
|
||||
(cd $DEST/debug && find . -name '*.tgz' -atime +7 -delete) > /dev/null
|
||||
|
||||
# compile.sh version checking
|
||||
ver1=$(awk -F"=" '/^# VERSION/ {print $2}' <"$SRC/compile.sh")
|
||||
ver2=$(awk -F"=" '/^# VERSION/ {print $2}' <"$SRC/lib/compile.sh" 2>/dev/null) || ver2=0
|
||||
ver1=$(awk -F"=" '/^# VERSION/ {print $2}' <$SRC/compile.sh )
|
||||
ver2=$(awk -F"=" '/^# VERSION/ {print $2}' <$SRC/lib/compile.sh 2>/dev/null) || ver2=0
|
||||
if [[ -z $ver1 || $ver1 -lt $ver2 ]]; then
|
||||
display_alert "File $0 is outdated. Please overwrite it with an updated version from" "$SRC/lib" "wrn"
|
||||
echo -e "Press \e[0;33m<Ctrl-C>\x1B[0m to abort compilation, \e[0;33m<Enter>\x1B[0m to ignore and continue"
|
||||
@ -200,24 +200,12 @@ done
|
||||
|
||||
# Compile u-boot if packed .deb does not exist
|
||||
if [[ ! -f $DEST/debs/${CHOSEN_UBOOT}_${REVISION}_${ARCH}.deb ]]; then
|
||||
# if requires specific toolchain, check if default is suitable
|
||||
if [[ -n $UBOOT_NEEDS_GCC ]] && ! check_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" ; then
|
||||
# try to find suitable in $SRC/toolchains, exit if not found
|
||||
find_toolchain "UBOOT" "$UBOOT_NEEDS_GCC" "UBOOT_TOOLCHAIN"
|
||||
fi
|
||||
|
||||
compile_uboot $(overlayfs_wrapper "wrap" "$SOURCES/$BOOTSOURCEDIR")
|
||||
compile_uboot
|
||||
fi
|
||||
|
||||
# Compile kernel if packed .deb does not exist
|
||||
if [[ ! -f $DEST/debs/${CHOSEN_KERNEL}_${REVISION}_${ARCH}.deb ]]; then
|
||||
# if requires specific toolchain, check if default is suitable
|
||||
if [[ -n $KERNEL_NEEDS_GCC ]] && ! check_toolchain "$KERNEL" "$KERNEL_NEEDS_GCC" ; then
|
||||
# try to find suitable in $SRC/toolchains, exit if not found
|
||||
find_toolchain "KERNEL" "$KERNEL_NEEDS_GCC" "KERNEL_TOOLCHAIN"
|
||||
fi
|
||||
|
||||
compile_kernel $(overlayfs_wrapper "wrap" "$SOURCES/$LINUXSOURCEDIR")
|
||||
compile_kernel
|
||||
fi
|
||||
|
||||
overlayfs_wrapper "cleanup"
|
||||
|
||||
@ -25,6 +25,7 @@ create_board_package()
|
||||
# Replaces: base-files is needed to replace /etc/update-motd.d/ files on Xenial
|
||||
# Replaces: unattended-upgrades may be needed to replace /etc/apt/apt.conf.d/50unattended-upgrades
|
||||
# (distributions provide good defaults, so this is not needed currently)
|
||||
# Depends: linux-base is needed for "linux-version" command in initrd cleanup script
|
||||
cat <<-EOF > $destination/DEBIAN/control
|
||||
Package: linux-${RELEASE}-root-${DEB_BRANCH}${BOARD}
|
||||
Version: $REVISION
|
||||
@ -33,7 +34,7 @@ create_board_package()
|
||||
Installed-Size: 1
|
||||
Section: kernel
|
||||
Priority: optional
|
||||
Depends: bash
|
||||
Depends: bash, linux-base
|
||||
Provides: armbian-bsp
|
||||
Conflicts: armbian-bsp
|
||||
Replaces: base-files, mpv
|
||||
@ -233,6 +234,14 @@ create_board_package()
|
||||
# setting window title for remote sessions
|
||||
install -m 755 $SRC/lib/scripts/ssh-title.sh $destination/etc/profile.d/ssh-title.sh
|
||||
|
||||
# install copy of boot script & environment file
|
||||
mkdir -p $destination/usr/share/armbian/
|
||||
local bootscript_src=${BOOTSCRIPT%%:*}
|
||||
local bootscript_dst=${BOOTSCRIPT##*:}
|
||||
cp $SRC/lib/config/bootscripts/$bootscript_src $destination/usr/share/armbian/$bootscript_dst
|
||||
[[ -n $BOOTENV_FILE && -f $SRC/lib/config/bootenv/$BOOTENV_FILE ]] && \
|
||||
cp $SRC/lib/config/bootenv/$BOOTENV_FILE $destination/usr/share/armbian/armbianEnv.txt
|
||||
|
||||
# h3disp for sun8i/3.4.x
|
||||
if [[ $LINUXFAMILY == sun8i && $BRANCH == default ]]; then
|
||||
install -m 755 $SRC/lib/scripts/h3disp $destination/usr/bin
|
||||
|
||||
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
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
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,153 +0,0 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 578a82554923..a127b9ef9ebc 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 25
|
||||
+SUBLEVEL = 26
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
|
||||
index 0a291cdfaf77..efa6073ffa7e 100644
|
||||
--- a/arch/x86/boot/compressed/Makefile
|
||||
+++ b/arch/x86/boot/compressed/Makefile
|
||||
@@ -22,7 +22,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
|
||||
vmlinux.bin.xz vmlinux.bin.lzo vmlinux.bin.lz4
|
||||
|
||||
KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
|
||||
-KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
|
||||
+KBUILD_CFLAGS += -fno-strict-aliasing $(call cc-option, -fPIE, -fPIC)
|
||||
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
|
||||
cflags-$(CONFIG_X86_32) := -march=i386
|
||||
cflags-$(CONFIG_X86_64) := -mcmodel=small
|
||||
@@ -35,6 +35,18 @@ KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
|
||||
GCOV_PROFILE := n
|
||||
|
||||
LDFLAGS := -m elf_$(UTS_MACHINE)
|
||||
+ifeq ($(CONFIG_RELOCATABLE),y)
|
||||
+# If kernel is relocatable, build compressed kernel as PIE.
|
||||
+ifeq ($(CONFIG_X86_32),y)
|
||||
+LDFLAGS += $(call ld-option, -pie) $(call ld-option, --no-dynamic-linker)
|
||||
+else
|
||||
+# To build 64-bit compressed kernel as PIE, we disable relocation
|
||||
+# overflow check to avoid relocation overflow error with a new linker
|
||||
+# command-line option, -z noreloc-overflow.
|
||||
+LDFLAGS += $(shell $(LD) --help 2>&1 | grep -q "\-z noreloc-overflow" \
|
||||
+ && echo "-z noreloc-overflow -pie --no-dynamic-linker")
|
||||
+endif
|
||||
+endif
|
||||
LDFLAGS_vmlinux := -T
|
||||
|
||||
hostprogs-y := mkpiggy
|
||||
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
|
||||
index 8ef964ddc18e..0256064da8da 100644
|
||||
--- a/arch/x86/boot/compressed/head_32.S
|
||||
+++ b/arch/x86/boot/compressed/head_32.S
|
||||
@@ -31,6 +31,34 @@
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/bootparam.h>
|
||||
|
||||
+/*
|
||||
+ * The 32-bit x86 assembler in binutils 2.26 will generate R_386_GOT32X
|
||||
+ * relocation to get the symbol address in PIC. When the compressed x86
|
||||
+ * kernel isn't built as PIC, the linker optimizes R_386_GOT32X
|
||||
+ * relocations to their fixed symbol addresses. However, when the
|
||||
+ * compressed x86 kernel is loaded at a different address, it leads
|
||||
+ * to the following load failure:
|
||||
+ *
|
||||
+ * Failed to allocate space for phdrs
|
||||
+ *
|
||||
+ * during the decompression stage.
|
||||
+ *
|
||||
+ * If the compressed x86 kernel is relocatable at run-time, it should be
|
||||
+ * compiled with -fPIE, instead of -fPIC, if possible and should be built as
|
||||
+ * Position Independent Executable (PIE) so that linker won't optimize
|
||||
+ * R_386_GOT32X relocation to its fixed symbol address. Older
|
||||
+ * linkers generate R_386_32 relocations against locally defined symbols,
|
||||
+ * _bss, _ebss, _got and _egot, in PIE. It isn't wrong, just less
|
||||
+ * optimal than R_386_RELATIVE. But the x86 kernel fails to properly handle
|
||||
+ * R_386_32 relocations when relocating the kernel. To generate
|
||||
+ * R_386_RELATIVE relocations, we mark _bss, _ebss, _got and _egot as
|
||||
+ * hidden:
|
||||
+ */
|
||||
+ .hidden _bss
|
||||
+ .hidden _ebss
|
||||
+ .hidden _got
|
||||
+ .hidden _egot
|
||||
+
|
||||
__HEAD
|
||||
ENTRY(startup_32)
|
||||
#ifdef CONFIG_EFI_STUB
|
||||
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
|
||||
index b0c0d16ef58d..86558a199139 100644
|
||||
--- a/arch/x86/boot/compressed/head_64.S
|
||||
+++ b/arch/x86/boot/compressed/head_64.S
|
||||
@@ -33,6 +33,14 @@
|
||||
#include <asm/asm-offsets.h>
|
||||
#include <asm/bootparam.h>
|
||||
|
||||
+/*
|
||||
+ * Locally defined symbols should be marked hidden:
|
||||
+ */
|
||||
+ .hidden _bss
|
||||
+ .hidden _ebss
|
||||
+ .hidden _got
|
||||
+ .hidden _egot
|
||||
+
|
||||
__HEAD
|
||||
.code32
|
||||
ENTRY(startup_32)
|
||||
diff --git a/include/linux/mm.h b/include/linux/mm.h
|
||||
index cfebb742ee18..f0ffa01c90d9 100644
|
||||
--- a/include/linux/mm.h
|
||||
+++ b/include/linux/mm.h
|
||||
@@ -2112,6 +2112,7 @@ static inline struct page *follow_page(struct vm_area_struct *vma,
|
||||
#define FOLL_MIGRATION 0x400 /* wait for page to replace migration entry */
|
||||
#define FOLL_TRIED 0x800 /* a retry, previous pass started an IO */
|
||||
#define FOLL_MLOCK 0x1000 /* lock present pages */
|
||||
+#define FOLL_COW 0x4000 /* internal GUP flag */
|
||||
|
||||
typedef int (*pte_fn_t)(pte_t *pte, pgtable_t token, unsigned long addr,
|
||||
void *data);
|
||||
diff --git a/mm/gup.c b/mm/gup.c
|
||||
index deafa2c91b36..4b0b7e7d1136 100644
|
||||
--- a/mm/gup.c
|
||||
+++ b/mm/gup.c
|
||||
@@ -58,6 +58,16 @@ static int follow_pfn_pte(struct vm_area_struct *vma, unsigned long address,
|
||||
return -EEXIST;
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * FOLL_FORCE can write to even unwritable pte's, but only
|
||||
+ * after we've gone through a COW cycle and they are dirty.
|
||||
+ */
|
||||
+static inline bool can_follow_write_pte(pte_t pte, unsigned int flags)
|
||||
+{
|
||||
+ return pte_write(pte) ||
|
||||
+ ((flags & FOLL_FORCE) && (flags & FOLL_COW) && pte_dirty(pte));
|
||||
+}
|
||||
+
|
||||
static struct page *follow_page_pte(struct vm_area_struct *vma,
|
||||
unsigned long address, pmd_t *pmd, unsigned int flags)
|
||||
{
|
||||
@@ -92,7 +102,7 @@ retry:
|
||||
}
|
||||
if ((flags & FOLL_NUMA) && pte_protnone(pte))
|
||||
goto no_page;
|
||||
- if ((flags & FOLL_WRITE) && !pte_write(pte)) {
|
||||
+ if ((flags & FOLL_WRITE) && !can_follow_write_pte(pte, flags)) {
|
||||
pte_unmap_unlock(ptep, ptl);
|
||||
return NULL;
|
||||
}
|
||||
@@ -352,7 +362,7 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
|
||||
* reCOWed by userspace write).
|
||||
*/
|
||||
if ((ret & VM_FAULT_WRITE) && !(vma->vm_flags & VM_WRITE))
|
||||
- *flags &= ~FOLL_WRITE;
|
||||
+ *flags |= FOLL_COW;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -1,995 +0,0 @@
|
||||
diff --git a/Makefile b/Makefile
|
||||
index a127b9ef9ebc..b6ee4ce561f8 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 26
|
||||
+SUBLEVEL = 27
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/block/cfq-iosched.c b/block/cfq-iosched.c
|
||||
index 1f9093e901da..3ad307ee6029 100644
|
||||
--- a/block/cfq-iosched.c
|
||||
+++ b/block/cfq-iosched.c
|
||||
@@ -3003,7 +3003,6 @@ static struct request *cfq_check_fifo(struct cfq_queue *cfqq)
|
||||
if (time_before(jiffies, rq->fifo_time))
|
||||
rq = NULL;
|
||||
|
||||
- cfq_log_cfqq(cfqq->cfqd, cfqq, "fifo=%p", rq);
|
||||
return rq;
|
||||
}
|
||||
|
||||
@@ -3377,6 +3376,9 @@ static bool cfq_may_dispatch(struct cfq_data *cfqd, struct cfq_queue *cfqq)
|
||||
{
|
||||
unsigned int max_dispatch;
|
||||
|
||||
+ if (cfq_cfqq_must_dispatch(cfqq))
|
||||
+ return true;
|
||||
+
|
||||
/*
|
||||
* Drain async requests before we start sync IO
|
||||
*/
|
||||
@@ -3468,15 +3470,20 @@ static bool cfq_dispatch_request(struct cfq_data *cfqd, struct cfq_queue *cfqq)
|
||||
|
||||
BUG_ON(RB_EMPTY_ROOT(&cfqq->sort_list));
|
||||
|
||||
+ rq = cfq_check_fifo(cfqq);
|
||||
+ if (rq)
|
||||
+ cfq_mark_cfqq_must_dispatch(cfqq);
|
||||
+
|
||||
if (!cfq_may_dispatch(cfqd, cfqq))
|
||||
return false;
|
||||
|
||||
/*
|
||||
* follow expired path, else get first next available
|
||||
*/
|
||||
- rq = cfq_check_fifo(cfqq);
|
||||
if (!rq)
|
||||
rq = cfqq->next_rq;
|
||||
+ else
|
||||
+ cfq_log_cfqq(cfqq->cfqd, cfqq, "fifo=%p", rq);
|
||||
|
||||
/*
|
||||
* insert request into driver dispatch list
|
||||
@@ -3944,7 +3951,7 @@ cfq_should_preempt(struct cfq_data *cfqd, struct cfq_queue *new_cfqq,
|
||||
* if the new request is sync, but the currently running queue is
|
||||
* not, let the sync request have priority.
|
||||
*/
|
||||
- if (rq_is_sync(rq) && !cfq_cfqq_sync(cfqq))
|
||||
+ if (rq_is_sync(rq) && !cfq_cfqq_sync(cfqq) && !cfq_cfqq_must_dispatch(cfqq))
|
||||
return true;
|
||||
|
||||
if (new_cfqq->cfqg != cfqq->cfqg)
|
||||
diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c
|
||||
index c0748bbd4c08..84f8d4d8b6bc 100644
|
||||
--- a/crypto/async_tx/async_pq.c
|
||||
+++ b/crypto/async_tx/async_pq.c
|
||||
@@ -368,8 +368,6 @@ async_syndrome_val(struct page **blocks, unsigned int offset, int disks,
|
||||
|
||||
dma_set_unmap(tx, unmap);
|
||||
async_tx_submit(chan, tx, submit);
|
||||
-
|
||||
- return tx;
|
||||
} else {
|
||||
struct page *p_src = P(blocks, disks);
|
||||
struct page *q_src = Q(blocks, disks);
|
||||
@@ -424,9 +422,11 @@ async_syndrome_val(struct page **blocks, unsigned int offset, int disks,
|
||||
submit->cb_param = cb_param_orig;
|
||||
submit->flags = flags_orig;
|
||||
async_tx_sync_epilog(submit);
|
||||
-
|
||||
- return NULL;
|
||||
+ tx = NULL;
|
||||
}
|
||||
+ dmaengine_unmap_put(unmap);
|
||||
+
|
||||
+ return tx;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(async_syndrome_val);
|
||||
|
||||
diff --git a/crypto/ghash-generic.c b/crypto/ghash-generic.c
|
||||
index bac70995e064..12ad3e3a84e3 100644
|
||||
--- a/crypto/ghash-generic.c
|
||||
+++ b/crypto/ghash-generic.c
|
||||
@@ -14,24 +14,13 @@
|
||||
|
||||
#include <crypto/algapi.h>
|
||||
#include <crypto/gf128mul.h>
|
||||
+#include <crypto/ghash.h>
|
||||
#include <crypto/internal/hash.h>
|
||||
#include <linux/crypto.h>
|
||||
#include <linux/init.h>
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/module.h>
|
||||
|
||||
-#define GHASH_BLOCK_SIZE 16
|
||||
-#define GHASH_DIGEST_SIZE 16
|
||||
-
|
||||
-struct ghash_ctx {
|
||||
- struct gf128mul_4k *gf128;
|
||||
-};
|
||||
-
|
||||
-struct ghash_desc_ctx {
|
||||
- u8 buffer[GHASH_BLOCK_SIZE];
|
||||
- u32 bytes;
|
||||
-};
|
||||
-
|
||||
static int ghash_init(struct shash_desc *desc)
|
||||
{
|
||||
struct ghash_desc_ctx *dctx = shash_desc_ctx(desc);
|
||||
diff --git a/drivers/base/dma-mapping.c b/drivers/base/dma-mapping.c
|
||||
index d95c5971c225..a00f7b79202b 100644
|
||||
--- a/drivers/base/dma-mapping.c
|
||||
+++ b/drivers/base/dma-mapping.c
|
||||
@@ -335,7 +335,7 @@ void dma_common_free_remap(void *cpu_addr, size_t size, unsigned long vm_flags)
|
||||
return;
|
||||
}
|
||||
|
||||
- unmap_kernel_range((unsigned long)cpu_addr, size);
|
||||
+ unmap_kernel_range((unsigned long)cpu_addr, PAGE_ALIGN(size));
|
||||
vunmap(cpu_addr);
|
||||
}
|
||||
#endif
|
||||
diff --git a/drivers/crypto/vmx/ghash.c b/drivers/crypto/vmx/ghash.c
|
||||
index 2183a2e77641..9cb3a0b715e2 100644
|
||||
--- a/drivers/crypto/vmx/ghash.c
|
||||
+++ b/drivers/crypto/vmx/ghash.c
|
||||
@@ -26,16 +26,13 @@
|
||||
#include <linux/hardirq.h>
|
||||
#include <asm/switch_to.h>
|
||||
#include <crypto/aes.h>
|
||||
+#include <crypto/ghash.h>
|
||||
#include <crypto/scatterwalk.h>
|
||||
#include <crypto/internal/hash.h>
|
||||
#include <crypto/b128ops.h>
|
||||
|
||||
#define IN_INTERRUPT in_interrupt()
|
||||
|
||||
-#define GHASH_BLOCK_SIZE (16)
|
||||
-#define GHASH_DIGEST_SIZE (16)
|
||||
-#define GHASH_KEY_LEN (16)
|
||||
-
|
||||
void gcm_init_p8(u128 htable[16], const u64 Xi[2]);
|
||||
void gcm_gmult_p8(u64 Xi[2], const u128 htable[16]);
|
||||
void gcm_ghash_p8(u64 Xi[2], const u128 htable[16],
|
||||
@@ -55,16 +52,11 @@ struct p8_ghash_desc_ctx {
|
||||
|
||||
static int p8_ghash_init_tfm(struct crypto_tfm *tfm)
|
||||
{
|
||||
- const char *alg;
|
||||
+ const char *alg = "ghash-generic";
|
||||
struct crypto_shash *fallback;
|
||||
struct crypto_shash *shash_tfm = __crypto_shash_cast(tfm);
|
||||
struct p8_ghash_ctx *ctx = crypto_tfm_ctx(tfm);
|
||||
|
||||
- if (!(alg = crypto_tfm_alg_name(tfm))) {
|
||||
- printk(KERN_ERR "Failed to get algorithm name.\n");
|
||||
- return -ENOENT;
|
||||
- }
|
||||
-
|
||||
fallback = crypto_alloc_shash(alg, 0, CRYPTO_ALG_NEED_FALLBACK);
|
||||
if (IS_ERR(fallback)) {
|
||||
printk(KERN_ERR
|
||||
@@ -78,10 +70,18 @@ static int p8_ghash_init_tfm(struct crypto_tfm *tfm)
|
||||
crypto_shash_set_flags(fallback,
|
||||
crypto_shash_get_flags((struct crypto_shash
|
||||
*) tfm));
|
||||
- ctx->fallback = fallback;
|
||||
|
||||
- shash_tfm->descsize = sizeof(struct p8_ghash_desc_ctx)
|
||||
- + crypto_shash_descsize(fallback);
|
||||
+ /* Check if the descsize defined in the algorithm is still enough. */
|
||||
+ if (shash_tfm->descsize < sizeof(struct p8_ghash_desc_ctx)
|
||||
+ + crypto_shash_descsize(fallback)) {
|
||||
+ printk(KERN_ERR
|
||||
+ "Desc size of the fallback implementation (%s) does not match the expected value: %lu vs %u\n",
|
||||
+ alg,
|
||||
+ shash_tfm->descsize - sizeof(struct p8_ghash_desc_ctx),
|
||||
+ crypto_shash_descsize(fallback));
|
||||
+ return -EINVAL;
|
||||
+ }
|
||||
+ ctx->fallback = fallback;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -113,7 +113,7 @@ static int p8_ghash_setkey(struct crypto_shash *tfm, const u8 *key,
|
||||
{
|
||||
struct p8_ghash_ctx *ctx = crypto_tfm_ctx(crypto_shash_tfm(tfm));
|
||||
|
||||
- if (keylen != GHASH_KEY_LEN)
|
||||
+ if (keylen != GHASH_BLOCK_SIZE)
|
||||
return -EINVAL;
|
||||
|
||||
preempt_disable();
|
||||
@@ -215,7 +215,8 @@ struct shash_alg p8_ghash_alg = {
|
||||
.update = p8_ghash_update,
|
||||
.final = p8_ghash_final,
|
||||
.setkey = p8_ghash_setkey,
|
||||
- .descsize = sizeof(struct p8_ghash_desc_ctx),
|
||||
+ .descsize = sizeof(struct p8_ghash_desc_ctx)
|
||||
+ + sizeof(struct ghash_desc_ctx),
|
||||
.base = {
|
||||
.cra_name = "ghash",
|
||||
.cra_driver_name = "p8_ghash",
|
||||
diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c
|
||||
index 2215bebe208e..979cc024bca7 100644
|
||||
--- a/drivers/net/ethernet/intel/i40e/i40e_main.c
|
||||
+++ b/drivers/net/ethernet/intel/i40e/i40e_main.c
|
||||
@@ -10853,6 +10853,12 @@ static pci_ers_result_t i40e_pci_error_detected(struct pci_dev *pdev,
|
||||
|
||||
dev_info(&pdev->dev, "%s: error %d\n", __func__, error);
|
||||
|
||||
+ if (!pf) {
|
||||
+ dev_info(&pdev->dev,
|
||||
+ "Cannot recover - error happened during device probe\n");
|
||||
+ return PCI_ERS_RESULT_DISCONNECT;
|
||||
+ }
|
||||
+
|
||||
/* shutdown all operations */
|
||||
if (!test_bit(__I40E_SUSPENDED, &pf->state)) {
|
||||
rtnl_lock();
|
||||
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
|
||||
index deb5f78dcacc..71493d2af912 100644
|
||||
--- a/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
|
||||
+++ b/drivers/net/wireless/brcm80211/brcmfmac/cfg80211.c
|
||||
@@ -2408,7 +2408,7 @@ static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si)
|
||||
WL_BSS_INFO_MAX);
|
||||
if (err) {
|
||||
brcmf_err("Failed to get bss info (%d)\n", err);
|
||||
- return;
|
||||
+ goto out_kfree;
|
||||
}
|
||||
si->filled |= BIT(NL80211_STA_INFO_BSS_PARAM);
|
||||
si->bss_param.beacon_interval = le16_to_cpu(buf->bss_le.beacon_period);
|
||||
@@ -2420,6 +2420,9 @@ static void brcmf_fill_bss_param(struct brcmf_if *ifp, struct station_info *si)
|
||||
si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_PREAMBLE;
|
||||
if (capability & WLAN_CAPABILITY_SHORT_SLOT_TIME)
|
||||
si->bss_param.flags |= BSS_PARAM_FLAGS_SHORT_SLOT_TIME;
|
||||
+
|
||||
+out_kfree:
|
||||
+ kfree(buf);
|
||||
}
|
||||
|
||||
static s32
|
||||
diff --git a/drivers/scsi/arcmsr/arcmsr_hba.c b/drivers/scsi/arcmsr/arcmsr_hba.c
|
||||
index 41f9a00e4f74..8db9f3a5844d 100644
|
||||
--- a/drivers/scsi/arcmsr/arcmsr_hba.c
|
||||
+++ b/drivers/scsi/arcmsr/arcmsr_hba.c
|
||||
@@ -2297,15 +2297,23 @@ static int arcmsr_iop_message_xfer(struct AdapterControlBlock *acb,
|
||||
}
|
||||
case ARCMSR_MESSAGE_WRITE_WQBUFFER: {
|
||||
unsigned char *ver_addr;
|
||||
- int32_t user_len, cnt2end;
|
||||
+ uint32_t user_len;
|
||||
+ int32_t cnt2end;
|
||||
uint8_t *pQbuffer, *ptmpuserbuffer;
|
||||
+
|
||||
+ user_len = pcmdmessagefld->cmdmessage.Length;
|
||||
+ if (user_len > ARCMSR_API_DATA_BUFLEN) {
|
||||
+ retvalue = ARCMSR_MESSAGE_FAIL;
|
||||
+ goto message_out;
|
||||
+ }
|
||||
+
|
||||
ver_addr = kmalloc(ARCMSR_API_DATA_BUFLEN, GFP_ATOMIC);
|
||||
if (!ver_addr) {
|
||||
retvalue = ARCMSR_MESSAGE_FAIL;
|
||||
goto message_out;
|
||||
}
|
||||
ptmpuserbuffer = ver_addr;
|
||||
- user_len = pcmdmessagefld->cmdmessage.Length;
|
||||
+
|
||||
memcpy(ptmpuserbuffer,
|
||||
pcmdmessagefld->messagedatabuffer, user_len);
|
||||
spin_lock_irqsave(&acb->wqbuffer_lock, flags);
|
||||
diff --git a/drivers/scsi/ibmvscsi/ibmvfc.c b/drivers/scsi/ibmvscsi/ibmvfc.c
|
||||
index 6aa317c303e2..1f9f9e5af207 100644
|
||||
--- a/drivers/scsi/ibmvscsi/ibmvfc.c
|
||||
+++ b/drivers/scsi/ibmvscsi/ibmvfc.c
|
||||
@@ -717,7 +717,6 @@ static int ibmvfc_reset_crq(struct ibmvfc_host *vhost)
|
||||
spin_lock_irqsave(vhost->host->host_lock, flags);
|
||||
vhost->state = IBMVFC_NO_CRQ;
|
||||
vhost->logged_in = 0;
|
||||
- ibmvfc_set_host_action(vhost, IBMVFC_HOST_ACTION_NONE);
|
||||
|
||||
/* Clean out the queue */
|
||||
memset(crq->msgs, 0, PAGE_SIZE);
|
||||
diff --git a/drivers/tty/serial/8250/8250_dw.c b/drivers/tty/serial/8250/8250_dw.c
|
||||
index a5d319e4aae6..8435c3f204c1 100644
|
||||
--- a/drivers/tty/serial/8250/8250_dw.c
|
||||
+++ b/drivers/tty/serial/8250/8250_dw.c
|
||||
@@ -440,7 +440,7 @@ static int dw8250_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
data->pclk = devm_clk_get(&pdev->dev, "apb_pclk");
|
||||
- if (IS_ERR(data->clk) && PTR_ERR(data->clk) == -EPROBE_DEFER) {
|
||||
+ if (IS_ERR(data->pclk) && PTR_ERR(data->pclk) == -EPROBE_DEFER) {
|
||||
err = -EPROBE_DEFER;
|
||||
goto err_clk;
|
||||
}
|
||||
diff --git a/fs/attr.c b/fs/attr.c
|
||||
index 6530ced19697..d62f674a605f 100644
|
||||
--- a/fs/attr.c
|
||||
+++ b/fs/attr.c
|
||||
@@ -202,6 +202,21 @@ int notify_change(struct dentry * dentry, struct iattr * attr, struct inode **de
|
||||
return -EPERM;
|
||||
}
|
||||
|
||||
+ /*
|
||||
+ * If utimes(2) and friends are called with times == NULL (or both
|
||||
+ * times are UTIME_NOW), then we need to check for write permission
|
||||
+ */
|
||||
+ if (ia_valid & ATTR_TOUCH) {
|
||||
+ if (IS_IMMUTABLE(inode))
|
||||
+ return -EPERM;
|
||||
+
|
||||
+ if (!inode_owner_or_capable(inode)) {
|
||||
+ error = inode_permission(inode, MAY_WRITE);
|
||||
+ if (error)
|
||||
+ return error;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
if ((ia_valid & ATTR_MODE)) {
|
||||
umode_t amode = attr->ia_mode;
|
||||
/* Flag setting protected by i_mutex */
|
||||
diff --git a/fs/btrfs/compression.c b/fs/btrfs/compression.c
|
||||
index c473c42d7d6c..bae05c5c75ba 100644
|
||||
--- a/fs/btrfs/compression.c
|
||||
+++ b/fs/btrfs/compression.c
|
||||
@@ -694,7 +694,7 @@ int btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
|
||||
ret = btrfs_map_bio(root, READ, comp_bio,
|
||||
mirror_num, 0);
|
||||
if (ret) {
|
||||
- bio->bi_error = ret;
|
||||
+ comp_bio->bi_error = ret;
|
||||
bio_endio(comp_bio);
|
||||
}
|
||||
|
||||
@@ -723,7 +723,7 @@ int btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
|
||||
|
||||
ret = btrfs_map_bio(root, READ, comp_bio, mirror_num, 0);
|
||||
if (ret) {
|
||||
- bio->bi_error = ret;
|
||||
+ comp_bio->bi_error = ret;
|
||||
bio_endio(comp_bio);
|
||||
}
|
||||
|
||||
diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
|
||||
index 3a37bd3f9637..9d7a4a714907 100644
|
||||
--- a/fs/dlm/lowcomms.c
|
||||
+++ b/fs/dlm/lowcomms.c
|
||||
@@ -1607,16 +1607,12 @@ void dlm_lowcomms_stop(void)
|
||||
mutex_lock(&connections_lock);
|
||||
dlm_allow_conn = 0;
|
||||
foreach_conn(stop_conn);
|
||||
+ clean_writequeues();
|
||||
+ foreach_conn(free_conn);
|
||||
mutex_unlock(&connections_lock);
|
||||
|
||||
work_stop();
|
||||
|
||||
- mutex_lock(&connections_lock);
|
||||
- clean_writequeues();
|
||||
-
|
||||
- foreach_conn(free_conn);
|
||||
-
|
||||
- mutex_unlock(&connections_lock);
|
||||
kmem_cache_destroy(con_cache);
|
||||
}
|
||||
|
||||
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
|
||||
index 8eac7d586997..9da42ace762a 100644
|
||||
--- a/fs/ext4/extents.c
|
||||
+++ b/fs/ext4/extents.c
|
||||
@@ -5738,6 +5738,9 @@ int ext4_insert_range(struct inode *inode, loff_t offset, loff_t len)
|
||||
up_write(&EXT4_I(inode)->i_data_sem);
|
||||
goto out_stop;
|
||||
}
|
||||
+ } else {
|
||||
+ ext4_ext_drop_refs(path);
|
||||
+ kfree(path);
|
||||
}
|
||||
|
||||
ret = ext4_es_remove_extent(inode, offset_lblk,
|
||||
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
|
||||
index 28702932a908..c71d2941a45b 100644
|
||||
--- a/fs/ext4/inode.c
|
||||
+++ b/fs/ext4/inode.c
|
||||
@@ -3645,7 +3645,7 @@ int ext4_update_disksize_before_punch(struct inode *inode, loff_t offset,
|
||||
}
|
||||
|
||||
/*
|
||||
- * ext4_punch_hole: punches a hole in a file by releaseing the blocks
|
||||
+ * ext4_punch_hole: punches a hole in a file by releasing the blocks
|
||||
* associated with the given offset and length
|
||||
*
|
||||
* @inode: File inode
|
||||
@@ -3674,7 +3674,7 @@ int ext4_punch_hole(struct inode *inode, loff_t offset, loff_t length)
|
||||
* Write out all dirty pages to avoid race conditions
|
||||
* Then release them.
|
||||
*/
|
||||
- if (mapping->nrpages && mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) {
|
||||
+ if (mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) {
|
||||
ret = filemap_write_and_wait_range(mapping, offset,
|
||||
offset + length - 1);
|
||||
if (ret)
|
||||
@@ -4549,14 +4549,14 @@ static int ext4_do_update_inode(handle_t *handle,
|
||||
* Fix up interoperability with old kernels. Otherwise, old inodes get
|
||||
* re-used with the upper 16 bits of the uid/gid intact
|
||||
*/
|
||||
- if (!ei->i_dtime) {
|
||||
+ if (ei->i_dtime && list_empty(&ei->i_orphan)) {
|
||||
+ raw_inode->i_uid_high = 0;
|
||||
+ raw_inode->i_gid_high = 0;
|
||||
+ } else {
|
||||
raw_inode->i_uid_high =
|
||||
cpu_to_le16(high_16_bits(i_uid));
|
||||
raw_inode->i_gid_high =
|
||||
cpu_to_le16(high_16_bits(i_gid));
|
||||
- } else {
|
||||
- raw_inode->i_uid_high = 0;
|
||||
- raw_inode->i_gid_high = 0;
|
||||
}
|
||||
} else {
|
||||
raw_inode->i_uid_low = cpu_to_le16(fs_high2lowuid(i_uid));
|
||||
diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c
|
||||
index 796ff0eafd3c..7861d801b048 100644
|
||||
--- a/fs/ext4/move_extent.c
|
||||
+++ b/fs/ext4/move_extent.c
|
||||
@@ -598,6 +598,13 @@ ext4_move_extents(struct file *o_filp, struct file *d_filp, __u64 orig_blk,
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
+ if (ext4_encrypted_inode(orig_inode) ||
|
||||
+ ext4_encrypted_inode(donor_inode)) {
|
||||
+ ext4_msg(orig_inode->i_sb, KERN_ERR,
|
||||
+ "Online defrag not supported for encrypted files");
|
||||
+ return -EOPNOTSUPP;
|
||||
+ }
|
||||
+
|
||||
/* Protect orig and donor inodes against a truncate */
|
||||
lock_two_nondirectories(orig_inode, donor_inode);
|
||||
|
||||
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
|
||||
index 38eb0c8e43b9..573b4cbb0cb9 100644
|
||||
--- a/fs/ext4/namei.c
|
||||
+++ b/fs/ext4/namei.c
|
||||
@@ -2017,33 +2017,31 @@ static int make_indexed_dir(handle_t *handle, struct ext4_filename *fname,
|
||||
frame->entries = entries;
|
||||
frame->at = entries;
|
||||
frame->bh = bh;
|
||||
- bh = bh2;
|
||||
|
||||
retval = ext4_handle_dirty_dx_node(handle, dir, frame->bh);
|
||||
if (retval)
|
||||
goto out_frames;
|
||||
- retval = ext4_handle_dirty_dirent_node(handle, dir, bh);
|
||||
+ retval = ext4_handle_dirty_dirent_node(handle, dir, bh2);
|
||||
if (retval)
|
||||
goto out_frames;
|
||||
|
||||
- de = do_split(handle,dir, &bh, frame, &fname->hinfo);
|
||||
+ de = do_split(handle,dir, &bh2, frame, &fname->hinfo);
|
||||
if (IS_ERR(de)) {
|
||||
retval = PTR_ERR(de);
|
||||
goto out_frames;
|
||||
}
|
||||
- dx_release(frames);
|
||||
|
||||
- retval = add_dirent_to_buf(handle, fname, dir, inode, de, bh);
|
||||
- brelse(bh);
|
||||
- return retval;
|
||||
+ retval = add_dirent_to_buf(handle, fname, dir, inode, de, bh2);
|
||||
out_frames:
|
||||
/*
|
||||
* Even if the block split failed, we have to properly write
|
||||
* out all the changes we did so far. Otherwise we can end up
|
||||
* with corrupted filesystem.
|
||||
*/
|
||||
- ext4_mark_inode_dirty(handle, dir);
|
||||
+ if (retval)
|
||||
+ ext4_mark_inode_dirty(handle, dir);
|
||||
dx_release(frames);
|
||||
+ brelse(bh2);
|
||||
return retval;
|
||||
}
|
||||
|
||||
diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
|
||||
index 5e2e08712d3b..4b5f2c4e69c8 100644
|
||||
--- a/fs/fuse/dir.c
|
||||
+++ b/fs/fuse/dir.c
|
||||
@@ -1697,14 +1697,46 @@ error:
|
||||
static int fuse_setattr(struct dentry *entry, struct iattr *attr)
|
||||
{
|
||||
struct inode *inode = d_inode(entry);
|
||||
+ struct file *file = (attr->ia_valid & ATTR_FILE) ? attr->ia_file : NULL;
|
||||
+ int ret;
|
||||
|
||||
if (!fuse_allow_current_process(get_fuse_conn(inode)))
|
||||
return -EACCES;
|
||||
|
||||
- if (attr->ia_valid & ATTR_FILE)
|
||||
- return fuse_do_setattr(inode, attr, attr->ia_file);
|
||||
- else
|
||||
- return fuse_do_setattr(inode, attr, NULL);
|
||||
+ if (attr->ia_valid & (ATTR_KILL_SUID | ATTR_KILL_SGID)) {
|
||||
+ int kill;
|
||||
+
|
||||
+ attr->ia_valid &= ~(ATTR_KILL_SUID | ATTR_KILL_SGID |
|
||||
+ ATTR_MODE);
|
||||
+ /*
|
||||
+ * ia_mode calculation may have used stale i_mode. Refresh and
|
||||
+ * recalculate.
|
||||
+ */
|
||||
+ ret = fuse_do_getattr(inode, NULL, file);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ attr->ia_mode = inode->i_mode;
|
||||
+ kill = should_remove_suid(entry);
|
||||
+ if (kill & ATTR_KILL_SUID) {
|
||||
+ attr->ia_valid |= ATTR_MODE;
|
||||
+ attr->ia_mode &= ~S_ISUID;
|
||||
+ }
|
||||
+ if (kill & ATTR_KILL_SGID) {
|
||||
+ attr->ia_valid |= ATTR_MODE;
|
||||
+ attr->ia_mode &= ~S_ISGID;
|
||||
+ }
|
||||
+ }
|
||||
+ if (!attr->ia_valid)
|
||||
+ return 0;
|
||||
+
|
||||
+ ret = fuse_do_setattr(inode, attr, file);
|
||||
+ if (!ret) {
|
||||
+ /* Directory mode changed, may need to revalidate access */
|
||||
+ if (d_is_dir(entry) && (attr->ia_valid & ATTR_MODE))
|
||||
+ fuse_invalidate_entry_cache(entry);
|
||||
+ }
|
||||
+ return ret;
|
||||
}
|
||||
|
||||
static int fuse_getattr(struct vfsmount *mnt, struct dentry *entry,
|
||||
@@ -1797,6 +1829,23 @@ static ssize_t fuse_getxattr(struct dentry *entry, const char *name,
|
||||
return ret;
|
||||
}
|
||||
|
||||
+static int fuse_verify_xattr_list(char *list, size_t size)
|
||||
+{
|
||||
+ size_t origsize = size;
|
||||
+
|
||||
+ while (size) {
|
||||
+ size_t thislen = strnlen(list, size);
|
||||
+
|
||||
+ if (!thislen || thislen == size)
|
||||
+ return -EIO;
|
||||
+
|
||||
+ size -= thislen + 1;
|
||||
+ list += thislen + 1;
|
||||
+ }
|
||||
+
|
||||
+ return origsize;
|
||||
+}
|
||||
+
|
||||
static ssize_t fuse_listxattr(struct dentry *entry, char *list, size_t size)
|
||||
{
|
||||
struct inode *inode = d_inode(entry);
|
||||
@@ -1832,6 +1881,8 @@ static ssize_t fuse_listxattr(struct dentry *entry, char *list, size_t size)
|
||||
ret = fuse_simple_request(fc, &args);
|
||||
if (!ret && !size)
|
||||
ret = outarg.size;
|
||||
+ if (ret > 0 && size)
|
||||
+ ret = fuse_verify_xattr_list(list, ret);
|
||||
if (ret == -ENOSYS) {
|
||||
fc->no_listxattr = 1;
|
||||
ret = -EOPNOTSUPP;
|
||||
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c
|
||||
index 96a1bcf33db4..8f5ccdf81c25 100644
|
||||
--- a/fs/reiserfs/file.c
|
||||
+++ b/fs/reiserfs/file.c
|
||||
@@ -260,10 +260,10 @@ const struct file_operations reiserfs_file_operations = {
|
||||
|
||||
const struct inode_operations reiserfs_file_inode_operations = {
|
||||
.setattr = reiserfs_setattr,
|
||||
- .setxattr = reiserfs_setxattr,
|
||||
- .getxattr = reiserfs_getxattr,
|
||||
+ .setxattr = generic_setxattr,
|
||||
+ .getxattr = generic_getxattr,
|
||||
.listxattr = reiserfs_listxattr,
|
||||
- .removexattr = reiserfs_removexattr,
|
||||
+ .removexattr = generic_removexattr,
|
||||
.permission = reiserfs_permission,
|
||||
.get_acl = reiserfs_get_acl,
|
||||
.set_acl = reiserfs_set_acl,
|
||||
diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c
|
||||
index 47f96988fdd4..3ebc70167e41 100644
|
||||
--- a/fs/reiserfs/namei.c
|
||||
+++ b/fs/reiserfs/namei.c
|
||||
@@ -1649,10 +1649,10 @@ const struct inode_operations reiserfs_dir_inode_operations = {
|
||||
.mknod = reiserfs_mknod,
|
||||
.rename = reiserfs_rename,
|
||||
.setattr = reiserfs_setattr,
|
||||
- .setxattr = reiserfs_setxattr,
|
||||
- .getxattr = reiserfs_getxattr,
|
||||
+ .setxattr = generic_setxattr,
|
||||
+ .getxattr = generic_getxattr,
|
||||
.listxattr = reiserfs_listxattr,
|
||||
- .removexattr = reiserfs_removexattr,
|
||||
+ .removexattr = generic_removexattr,
|
||||
.permission = reiserfs_permission,
|
||||
.get_acl = reiserfs_get_acl,
|
||||
.set_acl = reiserfs_set_acl,
|
||||
@@ -1667,10 +1667,10 @@ const struct inode_operations reiserfs_symlink_inode_operations = {
|
||||
.follow_link = page_follow_link_light,
|
||||
.put_link = page_put_link,
|
||||
.setattr = reiserfs_setattr,
|
||||
- .setxattr = reiserfs_setxattr,
|
||||
- .getxattr = reiserfs_getxattr,
|
||||
+ .setxattr = generic_setxattr,
|
||||
+ .getxattr = generic_getxattr,
|
||||
.listxattr = reiserfs_listxattr,
|
||||
- .removexattr = reiserfs_removexattr,
|
||||
+ .removexattr = generic_removexattr,
|
||||
.permission = reiserfs_permission,
|
||||
};
|
||||
|
||||
@@ -1679,10 +1679,10 @@ const struct inode_operations reiserfs_symlink_inode_operations = {
|
||||
*/
|
||||
const struct inode_operations reiserfs_special_inode_operations = {
|
||||
.setattr = reiserfs_setattr,
|
||||
- .setxattr = reiserfs_setxattr,
|
||||
- .getxattr = reiserfs_getxattr,
|
||||
+ .setxattr = generic_setxattr,
|
||||
+ .getxattr = generic_getxattr,
|
||||
.listxattr = reiserfs_listxattr,
|
||||
- .removexattr = reiserfs_removexattr,
|
||||
+ .removexattr = generic_removexattr,
|
||||
.permission = reiserfs_permission,
|
||||
.get_acl = reiserfs_get_acl,
|
||||
.set_acl = reiserfs_set_acl,
|
||||
diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
|
||||
index 4a62fe8cc3bf..f9f3be50081a 100644
|
||||
--- a/fs/reiserfs/super.c
|
||||
+++ b/fs/reiserfs/super.c
|
||||
@@ -190,7 +190,15 @@ static int remove_save_link_only(struct super_block *s,
|
||||
static int reiserfs_quota_on_mount(struct super_block *, int);
|
||||
#endif
|
||||
|
||||
-/* look for uncompleted unlinks and truncates and complete them */
|
||||
+/*
|
||||
+ * Look for uncompleted unlinks and truncates and complete them
|
||||
+ *
|
||||
+ * Called with superblock write locked. If quotas are enabled, we have to
|
||||
+ * release/retake lest we call dquot_quota_on_mount(), proceed to
|
||||
+ * schedule_on_each_cpu() in invalidate_bdev() and deadlock waiting for the per
|
||||
+ * cpu worklets to complete flush_async_commits() that in turn wait for the
|
||||
+ * superblock write lock.
|
||||
+ */
|
||||
static int finish_unfinished(struct super_block *s)
|
||||
{
|
||||
INITIALIZE_PATH(path);
|
||||
@@ -237,7 +245,9 @@ static int finish_unfinished(struct super_block *s)
|
||||
quota_enabled[i] = 0;
|
||||
continue;
|
||||
}
|
||||
+ reiserfs_write_unlock(s);
|
||||
ret = reiserfs_quota_on_mount(s, i);
|
||||
+ reiserfs_write_lock(s);
|
||||
if (ret < 0)
|
||||
reiserfs_warning(s, "reiserfs-2500",
|
||||
"cannot turn on journaled "
|
||||
diff --git a/fs/reiserfs/xattr.c b/fs/reiserfs/xattr.c
|
||||
index 66b26fdfff8d..a8dbc93e45eb 100644
|
||||
--- a/fs/reiserfs/xattr.c
|
||||
+++ b/fs/reiserfs/xattr.c
|
||||
@@ -763,60 +763,6 @@ find_xattr_handler_prefix(const struct xattr_handler **handlers,
|
||||
return xah;
|
||||
}
|
||||
|
||||
-
|
||||
-/*
|
||||
- * Inode operation getxattr()
|
||||
- */
|
||||
-ssize_t
|
||||
-reiserfs_getxattr(struct dentry * dentry, const char *name, void *buffer,
|
||||
- size_t size)
|
||||
-{
|
||||
- const struct xattr_handler *handler;
|
||||
-
|
||||
- handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name);
|
||||
-
|
||||
- if (!handler || get_inode_sd_version(d_inode(dentry)) == STAT_DATA_V1)
|
||||
- return -EOPNOTSUPP;
|
||||
-
|
||||
- return handler->get(handler, dentry, name, buffer, size);
|
||||
-}
|
||||
-
|
||||
-/*
|
||||
- * Inode operation setxattr()
|
||||
- *
|
||||
- * d_inode(dentry)->i_mutex down
|
||||
- */
|
||||
-int
|
||||
-reiserfs_setxattr(struct dentry *dentry, const char *name, const void *value,
|
||||
- size_t size, int flags)
|
||||
-{
|
||||
- const struct xattr_handler *handler;
|
||||
-
|
||||
- handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name);
|
||||
-
|
||||
- if (!handler || get_inode_sd_version(d_inode(dentry)) == STAT_DATA_V1)
|
||||
- return -EOPNOTSUPP;
|
||||
-
|
||||
- return handler->set(handler, dentry, name, value, size, flags);
|
||||
-}
|
||||
-
|
||||
-/*
|
||||
- * Inode operation removexattr()
|
||||
- *
|
||||
- * d_inode(dentry)->i_mutex down
|
||||
- */
|
||||
-int reiserfs_removexattr(struct dentry *dentry, const char *name)
|
||||
-{
|
||||
- const struct xattr_handler *handler;
|
||||
-
|
||||
- handler = find_xattr_handler_prefix(dentry->d_sb->s_xattr, name);
|
||||
-
|
||||
- if (!handler || get_inode_sd_version(d_inode(dentry)) == STAT_DATA_V1)
|
||||
- return -EOPNOTSUPP;
|
||||
-
|
||||
- return handler->set(handler, dentry, name, NULL, 0, XATTR_REPLACE);
|
||||
-}
|
||||
-
|
||||
struct listxattr_buf {
|
||||
struct dir_context ctx;
|
||||
size_t size;
|
||||
diff --git a/fs/reiserfs/xattr.h b/fs/reiserfs/xattr.h
|
||||
index 15dde6262c00..613ff5aef94e 100644
|
||||
--- a/fs/reiserfs/xattr.h
|
||||
+++ b/fs/reiserfs/xattr.h
|
||||
@@ -2,6 +2,7 @@
|
||||
#include <linux/init.h>
|
||||
#include <linux/list.h>
|
||||
#include <linux/rwsem.h>
|
||||
+#include <linux/xattr.h>
|
||||
|
||||
struct inode;
|
||||
struct dentry;
|
||||
@@ -18,12 +19,7 @@ int reiserfs_permission(struct inode *inode, int mask);
|
||||
|
||||
#ifdef CONFIG_REISERFS_FS_XATTR
|
||||
#define has_xattr_dir(inode) (REISERFS_I(inode)->i_flags & i_has_xattr_dir)
|
||||
-ssize_t reiserfs_getxattr(struct dentry *dentry, const char *name,
|
||||
- void *buffer, size_t size);
|
||||
-int reiserfs_setxattr(struct dentry *dentry, const char *name,
|
||||
- const void *value, size_t size, int flags);
|
||||
ssize_t reiserfs_listxattr(struct dentry *dentry, char *buffer, size_t size);
|
||||
-int reiserfs_removexattr(struct dentry *dentry, const char *name);
|
||||
|
||||
int reiserfs_xattr_get(struct inode *, const char *, void *, size_t);
|
||||
int reiserfs_xattr_set(struct inode *, const char *, const void *, size_t, int);
|
||||
@@ -92,10 +88,7 @@ static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
|
||||
|
||||
#else
|
||||
|
||||
-#define reiserfs_getxattr NULL
|
||||
-#define reiserfs_setxattr NULL
|
||||
#define reiserfs_listxattr NULL
|
||||
-#define reiserfs_removexattr NULL
|
||||
|
||||
static inline void reiserfs_init_xattr_rwsem(struct inode *inode)
|
||||
{
|
||||
diff --git a/fs/reiserfs/xattr_security.c b/fs/reiserfs/xattr_security.c
|
||||
index ac659af431ae..60de069225ba 100644
|
||||
--- a/fs/reiserfs/xattr_security.c
|
||||
+++ b/fs/reiserfs/xattr_security.c
|
||||
@@ -12,26 +12,24 @@ static int
|
||||
security_get(const struct xattr_handler *handler, struct dentry *dentry,
|
||||
const char *name, void *buffer, size_t size)
|
||||
{
|
||||
- if (strlen(name) < sizeof(XATTR_SECURITY_PREFIX))
|
||||
- return -EINVAL;
|
||||
-
|
||||
if (IS_PRIVATE(d_inode(dentry)))
|
||||
return -EPERM;
|
||||
|
||||
- return reiserfs_xattr_get(d_inode(dentry), name, buffer, size);
|
||||
+ return reiserfs_xattr_get(d_inode(dentry),
|
||||
+ xattr_full_name(handler, name),
|
||||
+ buffer, size);
|
||||
}
|
||||
|
||||
static int
|
||||
security_set(const struct xattr_handler *handler, struct dentry *dentry,
|
||||
const char *name, const void *buffer, size_t size, int flags)
|
||||
{
|
||||
- if (strlen(name) < sizeof(XATTR_SECURITY_PREFIX))
|
||||
- return -EINVAL;
|
||||
-
|
||||
if (IS_PRIVATE(d_inode(dentry)))
|
||||
return -EPERM;
|
||||
|
||||
- return reiserfs_xattr_set(d_inode(dentry), name, buffer, size, flags);
|
||||
+ return reiserfs_xattr_set(d_inode(dentry),
|
||||
+ xattr_full_name(handler, name),
|
||||
+ buffer, size, flags);
|
||||
}
|
||||
|
||||
static size_t security_list(const struct xattr_handler *handler,
|
||||
diff --git a/fs/reiserfs/xattr_trusted.c b/fs/reiserfs/xattr_trusted.c
|
||||
index a338adf1b8b4..ebba1ebf28ad 100644
|
||||
--- a/fs/reiserfs/xattr_trusted.c
|
||||
+++ b/fs/reiserfs/xattr_trusted.c
|
||||
@@ -11,26 +11,24 @@ static int
|
||||
trusted_get(const struct xattr_handler *handler, struct dentry *dentry,
|
||||
const char *name, void *buffer, size_t size)
|
||||
{
|
||||
- if (strlen(name) < sizeof(XATTR_TRUSTED_PREFIX))
|
||||
- return -EINVAL;
|
||||
-
|
||||
if (!capable(CAP_SYS_ADMIN) || IS_PRIVATE(d_inode(dentry)))
|
||||
return -EPERM;
|
||||
|
||||
- return reiserfs_xattr_get(d_inode(dentry), name, buffer, size);
|
||||
+ return reiserfs_xattr_get(d_inode(dentry),
|
||||
+ xattr_full_name(handler, name),
|
||||
+ buffer, size);
|
||||
}
|
||||
|
||||
static int
|
||||
trusted_set(const struct xattr_handler *handler, struct dentry *dentry,
|
||||
const char *name, const void *buffer, size_t size, int flags)
|
||||
{
|
||||
- if (strlen(name) < sizeof(XATTR_TRUSTED_PREFIX))
|
||||
- return -EINVAL;
|
||||
-
|
||||
if (!capable(CAP_SYS_ADMIN) || IS_PRIVATE(d_inode(dentry)))
|
||||
return -EPERM;
|
||||
|
||||
- return reiserfs_xattr_set(d_inode(dentry), name, buffer, size, flags);
|
||||
+ return reiserfs_xattr_set(d_inode(dentry),
|
||||
+ xattr_full_name(handler, name),
|
||||
+ buffer, size, flags);
|
||||
}
|
||||
|
||||
static size_t trusted_list(const struct xattr_handler *handler,
|
||||
diff --git a/fs/reiserfs/xattr_user.c b/fs/reiserfs/xattr_user.c
|
||||
index 39c9667191c5..6ac8a8c8bd9c 100644
|
||||
--- a/fs/reiserfs/xattr_user.c
|
||||
+++ b/fs/reiserfs/xattr_user.c
|
||||
@@ -10,24 +10,22 @@ static int
|
||||
user_get(const struct xattr_handler *handler, struct dentry *dentry,
|
||||
const char *name, void *buffer, size_t size)
|
||||
{
|
||||
-
|
||||
- if (strlen(name) < sizeof(XATTR_USER_PREFIX))
|
||||
- return -EINVAL;
|
||||
if (!reiserfs_xattrs_user(dentry->d_sb))
|
||||
return -EOPNOTSUPP;
|
||||
- return reiserfs_xattr_get(d_inode(dentry), name, buffer, size);
|
||||
+ return reiserfs_xattr_get(d_inode(dentry),
|
||||
+ xattr_full_name(handler, name),
|
||||
+ buffer, size);
|
||||
}
|
||||
|
||||
static int
|
||||
user_set(const struct xattr_handler *handler, struct dentry *dentry,
|
||||
const char *name, const void *buffer, size_t size, int flags)
|
||||
{
|
||||
- if (strlen(name) < sizeof(XATTR_USER_PREFIX))
|
||||
- return -EINVAL;
|
||||
-
|
||||
if (!reiserfs_xattrs_user(dentry->d_sb))
|
||||
return -EOPNOTSUPP;
|
||||
- return reiserfs_xattr_set(d_inode(dentry), name, buffer, size, flags);
|
||||
+ return reiserfs_xattr_set(d_inode(dentry),
|
||||
+ xattr_full_name(handler, name),
|
||||
+ buffer, size, flags);
|
||||
}
|
||||
|
||||
static size_t user_list(const struct xattr_handler *handler,
|
||||
diff --git a/fs/utimes.c b/fs/utimes.c
|
||||
index aa138d64560a..cb771c30d102 100644
|
||||
--- a/fs/utimes.c
|
||||
+++ b/fs/utimes.c
|
||||
@@ -87,20 +87,7 @@ static int utimes_common(struct path *path, struct timespec *times)
|
||||
*/
|
||||
newattrs.ia_valid |= ATTR_TIMES_SET;
|
||||
} else {
|
||||
- /*
|
||||
- * If times is NULL (or both times are UTIME_NOW),
|
||||
- * then we need to check permissions, because
|
||||
- * inode_change_ok() won't do it.
|
||||
- */
|
||||
- error = -EACCES;
|
||||
- if (IS_IMMUTABLE(inode))
|
||||
- goto mnt_drop_write_and_out;
|
||||
-
|
||||
- if (!inode_owner_or_capable(inode)) {
|
||||
- error = inode_permission(inode, MAY_WRITE);
|
||||
- if (error)
|
||||
- goto mnt_drop_write_and_out;
|
||||
- }
|
||||
+ newattrs.ia_valid |= ATTR_TOUCH;
|
||||
}
|
||||
retry_deleg:
|
||||
mutex_lock(&inode->i_mutex);
|
||||
@@ -112,7 +99,6 @@ retry_deleg:
|
||||
goto retry_deleg;
|
||||
}
|
||||
|
||||
-mnt_drop_write_and_out:
|
||||
mnt_drop_write(path->mnt);
|
||||
out:
|
||||
return error;
|
||||
diff --git a/include/crypto/ghash.h b/include/crypto/ghash.h
|
||||
new file mode 100644
|
||||
index 000000000000..2a61c9bbab8f
|
||||
--- /dev/null
|
||||
+++ b/include/crypto/ghash.h
|
||||
@@ -0,0 +1,23 @@
|
||||
+/*
|
||||
+ * Common values for GHASH algorithms
|
||||
+ */
|
||||
+
|
||||
+#ifndef __CRYPTO_GHASH_H__
|
||||
+#define __CRYPTO_GHASH_H__
|
||||
+
|
||||
+#include <linux/types.h>
|
||||
+#include <crypto/gf128mul.h>
|
||||
+
|
||||
+#define GHASH_BLOCK_SIZE 16
|
||||
+#define GHASH_DIGEST_SIZE 16
|
||||
+
|
||||
+struct ghash_ctx {
|
||||
+ struct gf128mul_4k *gf128;
|
||||
+};
|
||||
+
|
||||
+struct ghash_desc_ctx {
|
||||
+ u8 buffer[GHASH_BLOCK_SIZE];
|
||||
+ u32 bytes;
|
||||
+};
|
||||
+
|
||||
+#endif
|
||||
diff --git a/include/linux/fs.h b/include/linux/fs.h
|
||||
index 0166582c4d78..e1a123760dbf 100644
|
||||
--- a/include/linux/fs.h
|
||||
+++ b/include/linux/fs.h
|
||||
@@ -226,6 +226,7 @@ typedef void (dax_iodone_t)(struct buffer_head *bh_map, int uptodate);
|
||||
#define ATTR_KILL_PRIV (1 << 14)
|
||||
#define ATTR_OPEN (1 << 15) /* Truncating from open(O_TRUNC) */
|
||||
#define ATTR_TIMES_SET (1 << 16)
|
||||
+#define ATTR_TOUCH (1 << 17)
|
||||
|
||||
/*
|
||||
* Whiteout is represented by a char device. The following constants define the
|
||||
diff --git a/sound/soc/intel/atom/sst/sst_pvt.c b/sound/soc/intel/atom/sst/sst_pvt.c
|
||||
index adb32fefd693..b1e6b8f34a6a 100644
|
||||
--- a/sound/soc/intel/atom/sst/sst_pvt.c
|
||||
+++ b/sound/soc/intel/atom/sst/sst_pvt.c
|
||||
@@ -279,17 +279,15 @@ int sst_prepare_and_post_msg(struct intel_sst_drv *sst,
|
||||
|
||||
if (response) {
|
||||
ret = sst_wait_timeout(sst, block);
|
||||
- if (ret < 0) {
|
||||
+ if (ret < 0)
|
||||
goto out;
|
||||
- } else if(block->data) {
|
||||
- if (!data)
|
||||
- goto out;
|
||||
- *data = kzalloc(block->size, GFP_KERNEL);
|
||||
- if (!(*data)) {
|
||||
+
|
||||
+ if (data && block->data) {
|
||||
+ *data = kmemdup(block->data, block->size, GFP_KERNEL);
|
||||
+ if (!*data) {
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
- } else
|
||||
- memcpy(data, (void *) block->data, block->size);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
out:
|
||||
File diff suppressed because it is too large
Load Diff
2368
patch/kernel/marvell-dev/patch-4.4.28-29.patch
Normal file
2368
patch/kernel/marvell-dev/patch-4.4.28-29.patch
Normal file
File diff suppressed because it is too large
Load Diff
434
patch/kernel/marvell-dev/patch-4.4.29-30.patch
Normal file
434
patch/kernel/marvell-dev/patch-4.4.29-30.patch
Normal file
@ -0,0 +1,434 @@
|
||||
diff --git a/Documentation/x86/exception-tables.txt b/Documentation/x86/exception-tables.txt
|
||||
index e396bcd8d830..32901aa36f0a 100644
|
||||
--- a/Documentation/x86/exception-tables.txt
|
||||
+++ b/Documentation/x86/exception-tables.txt
|
||||
@@ -290,38 +290,3 @@ Due to the way that the exception table is built and needs to be ordered,
|
||||
only use exceptions for code in the .text section. Any other section
|
||||
will cause the exception table to not be sorted correctly, and the
|
||||
exceptions will fail.
|
||||
-
|
||||
-Things changed when 64-bit support was added to x86 Linux. Rather than
|
||||
-double the size of the exception table by expanding the two entries
|
||||
-from 32-bits to 64 bits, a clever trick was used to store addresses
|
||||
-as relative offsets from the table itself. The assembly code changed
|
||||
-from:
|
||||
- .long 1b,3b
|
||||
-to:
|
||||
- .long (from) - .
|
||||
- .long (to) - .
|
||||
-
|
||||
-and the C-code that uses these values converts back to absolute addresses
|
||||
-like this:
|
||||
-
|
||||
- ex_insn_addr(const struct exception_table_entry *x)
|
||||
- {
|
||||
- return (unsigned long)&x->insn + x->insn;
|
||||
- }
|
||||
-
|
||||
-In v4.6 the exception table entry was expanded with a new field "handler".
|
||||
-This is also 32-bits wide and contains a third relative function
|
||||
-pointer which points to one of:
|
||||
-
|
||||
-1) int ex_handler_default(const struct exception_table_entry *fixup)
|
||||
- This is legacy case that just jumps to the fixup code
|
||||
-2) int ex_handler_fault(const struct exception_table_entry *fixup)
|
||||
- This case provides the fault number of the trap that occurred at
|
||||
- entry->insn. It is used to distinguish page faults from machine
|
||||
- check.
|
||||
-3) int ex_handler_ext(const struct exception_table_entry *fixup)
|
||||
- This case is used for uaccess_err ... we need to set a flag
|
||||
- in the task structure. Before the handler functions existed this
|
||||
- case was handled by adding a large offset to the fixup to tag
|
||||
- it as special.
|
||||
-More functions can easily be added.
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 19d7d9f68e35..98239d56924c 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 29
|
||||
+SUBLEVEL = 30
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/arch/x86/include/asm/asm.h b/arch/x86/include/asm/asm.h
|
||||
index f5063b6659eb..189679aba703 100644
|
||||
--- a/arch/x86/include/asm/asm.h
|
||||
+++ b/arch/x86/include/asm/asm.h
|
||||
@@ -44,22 +44,19 @@
|
||||
|
||||
/* Exception table entry */
|
||||
#ifdef __ASSEMBLY__
|
||||
-# define _ASM_EXTABLE_HANDLE(from, to, handler) \
|
||||
+# define _ASM_EXTABLE(from,to) \
|
||||
.pushsection "__ex_table","a" ; \
|
||||
- .balign 4 ; \
|
||||
+ .balign 8 ; \
|
||||
.long (from) - . ; \
|
||||
.long (to) - . ; \
|
||||
- .long (handler) - . ; \
|
||||
.popsection
|
||||
|
||||
-# define _ASM_EXTABLE(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_default)
|
||||
-
|
||||
-# define _ASM_EXTABLE_FAULT(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_fault)
|
||||
-
|
||||
-# define _ASM_EXTABLE_EX(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_ext)
|
||||
+# define _ASM_EXTABLE_EX(from,to) \
|
||||
+ .pushsection "__ex_table","a" ; \
|
||||
+ .balign 8 ; \
|
||||
+ .long (from) - . ; \
|
||||
+ .long (to) - . + 0x7ffffff0 ; \
|
||||
+ .popsection
|
||||
|
||||
# define _ASM_NOKPROBE(entry) \
|
||||
.pushsection "_kprobe_blacklist","aw" ; \
|
||||
@@ -92,24 +89,19 @@
|
||||
.endm
|
||||
|
||||
#else
|
||||
-# define _EXPAND_EXTABLE_HANDLE(x) #x
|
||||
-# define _ASM_EXTABLE_HANDLE(from, to, handler) \
|
||||
+# define _ASM_EXTABLE(from,to) \
|
||||
" .pushsection \"__ex_table\",\"a\"\n" \
|
||||
- " .balign 4\n" \
|
||||
+ " .balign 8\n" \
|
||||
" .long (" #from ") - .\n" \
|
||||
" .long (" #to ") - .\n" \
|
||||
- " .long (" _EXPAND_EXTABLE_HANDLE(handler) ") - .\n" \
|
||||
" .popsection\n"
|
||||
|
||||
-# define _ASM_EXTABLE(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_default)
|
||||
-
|
||||
-# define _ASM_EXTABLE_FAULT(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_fault)
|
||||
-
|
||||
-# define _ASM_EXTABLE_EX(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_ext)
|
||||
-
|
||||
+# define _ASM_EXTABLE_EX(from,to) \
|
||||
+ " .pushsection \"__ex_table\",\"a\"\n" \
|
||||
+ " .balign 8\n" \
|
||||
+ " .long (" #from ") - .\n" \
|
||||
+ " .long (" #to ") - . + 0x7ffffff0\n" \
|
||||
+ " .popsection\n"
|
||||
/* For C file, we already have NOKPROBE_SYMBOL macro */
|
||||
#endif
|
||||
|
||||
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
|
||||
index 3794c7331cfc..09b1b0ab94b7 100644
|
||||
--- a/arch/x86/include/asm/uaccess.h
|
||||
+++ b/arch/x86/include/asm/uaccess.h
|
||||
@@ -90,11 +90,12 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
|
||||
likely(!__range_not_ok(addr, size, user_addr_max()))
|
||||
|
||||
/*
|
||||
- * The exception table consists of triples of addresses relative to the
|
||||
- * exception table entry itself. The first address is of an instruction
|
||||
- * that is allowed to fault, the second is the target at which the program
|
||||
- * should continue. The third is a handler function to deal with the fault
|
||||
- * caused by the instruction in the first field.
|
||||
+ * The exception table consists of pairs of addresses relative to the
|
||||
+ * exception table enty itself: the first is the address of an
|
||||
+ * instruction that is allowed to fault, and the second is the address
|
||||
+ * at which the program should continue. No registers are modified,
|
||||
+ * so it is entirely up to the continuation code to figure out what to
|
||||
+ * do.
|
||||
*
|
||||
* All the routines below use bits of fixup code that are out of line
|
||||
* with the main instruction path. This means when everything is well,
|
||||
@@ -103,14 +104,13 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
|
||||
*/
|
||||
|
||||
struct exception_table_entry {
|
||||
- int insn, fixup, handler;
|
||||
+ int insn, fixup;
|
||||
};
|
||||
/* This is not the generic standard exception_table_entry format */
|
||||
#define ARCH_HAS_SORT_EXTABLE
|
||||
#define ARCH_HAS_SEARCH_EXTABLE
|
||||
|
||||
-extern int fixup_exception(struct pt_regs *regs, int trapnr);
|
||||
-extern bool ex_has_fault_handler(unsigned long ip);
|
||||
+extern int fixup_exception(struct pt_regs *regs);
|
||||
extern int early_fixup_exception(unsigned long *ip);
|
||||
|
||||
/*
|
||||
@@ -394,11 +394,7 @@ do { \
|
||||
#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
|
||||
asm volatile("1: mov"itype" %1,%"rtype"0\n" \
|
||||
"2:\n" \
|
||||
- ".section .fixup,\"ax\"\n" \
|
||||
- "3:xor"itype" %"rtype"0,%"rtype"0\n" \
|
||||
- " jmp 2b\n" \
|
||||
- ".previous\n" \
|
||||
- _ASM_EXTABLE_EX(1b, 3b) \
|
||||
+ _ASM_EXTABLE_EX(1b, 2b) \
|
||||
: ltype(x) : "m" (__m(addr)))
|
||||
|
||||
#define __put_user_nocheck(x, ptr, size) \
|
||||
diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
|
||||
index e1d1f6cbaf11..023c442c33bb 100644
|
||||
--- a/arch/x86/kernel/kprobes/core.c
|
||||
+++ b/arch/x86/kernel/kprobes/core.c
|
||||
@@ -1000,7 +1000,7 @@ int kprobe_fault_handler(struct pt_regs *regs, int trapnr)
|
||||
* In case the user-specified fault handler returned
|
||||
* zero, try to fix up.
|
||||
*/
|
||||
- if (fixup_exception(regs, trapnr))
|
||||
+ if (fixup_exception(regs))
|
||||
return 1;
|
||||
|
||||
/*
|
||||
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
|
||||
index 5621f882645e..679302c312f8 100644
|
||||
--- a/arch/x86/kernel/traps.c
|
||||
+++ b/arch/x86/kernel/traps.c
|
||||
@@ -199,7 +199,7 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
|
||||
}
|
||||
|
||||
if (!user_mode(regs)) {
|
||||
- if (!fixup_exception(regs, trapnr)) {
|
||||
+ if (!fixup_exception(regs)) {
|
||||
tsk->thread.error_code = error_code;
|
||||
tsk->thread.trap_nr = trapnr;
|
||||
die(str, regs, error_code);
|
||||
@@ -453,7 +453,7 @@ do_general_protection(struct pt_regs *regs, long error_code)
|
||||
|
||||
tsk = current;
|
||||
if (!user_mode(regs)) {
|
||||
- if (fixup_exception(regs, X86_TRAP_GP))
|
||||
+ if (fixup_exception(regs))
|
||||
return;
|
||||
|
||||
tsk->thread.error_code = error_code;
|
||||
@@ -699,7 +699,7 @@ static void math_error(struct pt_regs *regs, int error_code, int trapnr)
|
||||
conditional_sti(regs);
|
||||
|
||||
if (!user_mode(regs)) {
|
||||
- if (!fixup_exception(regs, trapnr)) {
|
||||
+ if (!fixup_exception(regs)) {
|
||||
task->thread.error_code = error_code;
|
||||
task->thread.trap_nr = trapnr;
|
||||
die(str, regs, error_code);
|
||||
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
|
||||
index 9dd7e4b7fcde..903ec1e9c326 100644
|
||||
--- a/arch/x86/mm/extable.c
|
||||
+++ b/arch/x86/mm/extable.c
|
||||
@@ -3,9 +3,6 @@
|
||||
#include <linux/sort.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
-typedef bool (*ex_handler_t)(const struct exception_table_entry *,
|
||||
- struct pt_regs *, int);
|
||||
-
|
||||
static inline unsigned long
|
||||
ex_insn_addr(const struct exception_table_entry *x)
|
||||
{
|
||||
@@ -16,56 +13,11 @@ ex_fixup_addr(const struct exception_table_entry *x)
|
||||
{
|
||||
return (unsigned long)&x->fixup + x->fixup;
|
||||
}
|
||||
-static inline ex_handler_t
|
||||
-ex_fixup_handler(const struct exception_table_entry *x)
|
||||
-{
|
||||
- return (ex_handler_t)((unsigned long)&x->handler + x->handler);
|
||||
-}
|
||||
-
|
||||
-bool ex_handler_default(const struct exception_table_entry *fixup,
|
||||
- struct pt_regs *regs, int trapnr)
|
||||
-{
|
||||
- regs->ip = ex_fixup_addr(fixup);
|
||||
- return true;
|
||||
-}
|
||||
-EXPORT_SYMBOL(ex_handler_default);
|
||||
-
|
||||
-bool ex_handler_fault(const struct exception_table_entry *fixup,
|
||||
- struct pt_regs *regs, int trapnr)
|
||||
-{
|
||||
- regs->ip = ex_fixup_addr(fixup);
|
||||
- regs->ax = trapnr;
|
||||
- return true;
|
||||
-}
|
||||
-EXPORT_SYMBOL_GPL(ex_handler_fault);
|
||||
-
|
||||
-bool ex_handler_ext(const struct exception_table_entry *fixup,
|
||||
- struct pt_regs *regs, int trapnr)
|
||||
-{
|
||||
- /* Special hack for uaccess_err */
|
||||
- current_thread_info()->uaccess_err = 1;
|
||||
- regs->ip = ex_fixup_addr(fixup);
|
||||
- return true;
|
||||
-}
|
||||
-EXPORT_SYMBOL(ex_handler_ext);
|
||||
-
|
||||
-bool ex_has_fault_handler(unsigned long ip)
|
||||
-{
|
||||
- const struct exception_table_entry *e;
|
||||
- ex_handler_t handler;
|
||||
-
|
||||
- e = search_exception_tables(ip);
|
||||
- if (!e)
|
||||
- return false;
|
||||
- handler = ex_fixup_handler(e);
|
||||
-
|
||||
- return handler == ex_handler_fault;
|
||||
-}
|
||||
|
||||
-int fixup_exception(struct pt_regs *regs, int trapnr)
|
||||
+int fixup_exception(struct pt_regs *regs)
|
||||
{
|
||||
- const struct exception_table_entry *e;
|
||||
- ex_handler_t handler;
|
||||
+ const struct exception_table_entry *fixup;
|
||||
+ unsigned long new_ip;
|
||||
|
||||
#ifdef CONFIG_PNPBIOS
|
||||
if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
|
||||
@@ -81,34 +33,42 @@ int fixup_exception(struct pt_regs *regs, int trapnr)
|
||||
}
|
||||
#endif
|
||||
|
||||
- e = search_exception_tables(regs->ip);
|
||||
- if (!e)
|
||||
- return 0;
|
||||
+ fixup = search_exception_tables(regs->ip);
|
||||
+ if (fixup) {
|
||||
+ new_ip = ex_fixup_addr(fixup);
|
||||
+
|
||||
+ if (fixup->fixup - fixup->insn >= 0x7ffffff0 - 4) {
|
||||
+ /* Special hack for uaccess_err */
|
||||
+ current_thread_info()->uaccess_err = 1;
|
||||
+ new_ip -= 0x7ffffff0;
|
||||
+ }
|
||||
+ regs->ip = new_ip;
|
||||
+ return 1;
|
||||
+ }
|
||||
|
||||
- handler = ex_fixup_handler(e);
|
||||
- return handler(e, regs, trapnr);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/* Restricted version used during very early boot */
|
||||
int __init early_fixup_exception(unsigned long *ip)
|
||||
{
|
||||
- const struct exception_table_entry *e;
|
||||
+ const struct exception_table_entry *fixup;
|
||||
unsigned long new_ip;
|
||||
- ex_handler_t handler;
|
||||
|
||||
- e = search_exception_tables(*ip);
|
||||
- if (!e)
|
||||
- return 0;
|
||||
+ fixup = search_exception_tables(*ip);
|
||||
+ if (fixup) {
|
||||
+ new_ip = ex_fixup_addr(fixup);
|
||||
|
||||
- new_ip = ex_fixup_addr(e);
|
||||
- handler = ex_fixup_handler(e);
|
||||
+ if (fixup->fixup - fixup->insn >= 0x7ffffff0 - 4) {
|
||||
+ /* uaccess handling not supported during early boot */
|
||||
+ return 0;
|
||||
+ }
|
||||
|
||||
- /* special handling not supported during early boot */
|
||||
- if (handler != ex_handler_default)
|
||||
- return 0;
|
||||
+ *ip = new_ip;
|
||||
+ return 1;
|
||||
+ }
|
||||
|
||||
- *ip = new_ip;
|
||||
- return 1;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -173,8 +133,6 @@ void sort_extable(struct exception_table_entry *start,
|
||||
i += 4;
|
||||
p->fixup += i;
|
||||
i += 4;
|
||||
- p->handler += i;
|
||||
- i += 4;
|
||||
}
|
||||
|
||||
sort(start, finish - start, sizeof(struct exception_table_entry),
|
||||
@@ -187,8 +145,6 @@ void sort_extable(struct exception_table_entry *start,
|
||||
i += 4;
|
||||
p->fixup -= i;
|
||||
i += 4;
|
||||
- p->handler -= i;
|
||||
- i += 4;
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
|
||||
index 03898aea6e0f..e830c71a1323 100644
|
||||
--- a/arch/x86/mm/fault.c
|
||||
+++ b/arch/x86/mm/fault.c
|
||||
@@ -663,7 +663,7 @@ no_context(struct pt_regs *regs, unsigned long error_code,
|
||||
int sig;
|
||||
|
||||
/* Are we prepared to handle this kernel fault? */
|
||||
- if (fixup_exception(regs, X86_TRAP_PF)) {
|
||||
+ if (fixup_exception(regs)) {
|
||||
/*
|
||||
* Any interrupt that takes a fault gets the fixup. This makes
|
||||
* the below recursive fault logic only apply to a faults from
|
||||
diff --git a/scripts/sortextable.c b/scripts/sortextable.c
|
||||
index 7b29fb14f870..c2423d913b46 100644
|
||||
--- a/scripts/sortextable.c
|
||||
+++ b/scripts/sortextable.c
|
||||
@@ -209,35 +209,6 @@ static int compare_relative_table(const void *a, const void *b)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void x86_sort_relative_table(char *extab_image, int image_size)
|
||||
-{
|
||||
- int i;
|
||||
-
|
||||
- i = 0;
|
||||
- while (i < image_size) {
|
||||
- uint32_t *loc = (uint32_t *)(extab_image + i);
|
||||
-
|
||||
- w(r(loc) + i, loc);
|
||||
- w(r(loc + 1) + i + 4, loc + 1);
|
||||
- w(r(loc + 2) + i + 8, loc + 2);
|
||||
-
|
||||
- i += sizeof(uint32_t) * 3;
|
||||
- }
|
||||
-
|
||||
- qsort(extab_image, image_size / 12, 12, compare_relative_table);
|
||||
-
|
||||
- i = 0;
|
||||
- while (i < image_size) {
|
||||
- uint32_t *loc = (uint32_t *)(extab_image + i);
|
||||
-
|
||||
- w(r(loc) - i, loc);
|
||||
- w(r(loc + 1) - (i + 4), loc + 1);
|
||||
- w(r(loc + 2) - (i + 8), loc + 2);
|
||||
-
|
||||
- i += sizeof(uint32_t) * 3;
|
||||
- }
|
||||
-}
|
||||
-
|
||||
static void sort_relative_table(char *extab_image, int image_size)
|
||||
{
|
||||
int i;
|
||||
@@ -310,9 +281,6 @@ do_file(char const *const fname)
|
||||
break;
|
||||
case EM_386:
|
||||
case EM_X86_64:
|
||||
- custom_sort = x86_sort_relative_table;
|
||||
- break;
|
||||
-
|
||||
case EM_S390:
|
||||
custom_sort = sort_relative_table;
|
||||
break;
|
||||
@ -0,0 +1,39 @@
|
||||
From 832757c73ba9b69d0ee2d2753cca228f0d831386 Mon Sep 17 00:00:00 2001
|
||||
From: Martin Bergstrand <martin@bergstrand.us>
|
||||
Date: Mon, 24 Oct 2016 17:00:54 -0500
|
||||
Subject: [PATCH] Use Correct I2C Touchscreen Driver
|
||||
|
||||
---
|
||||
drivers/input/touchscreen/gt9xxf/gt9xxf.c | 5 +++++
|
||||
drivers/input/touchscreen/gt9xxf/gt9xxf.h | 2 +-
|
||||
2 files changed, 6 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/input/touchscreen/gt9xxf/gt9xxf.c b/drivers/input/touchscreen/gt9xxf/gt9xxf.c
|
||||
index 83f2358..95b13f4 100755
|
||||
--- a/drivers/input/touchscreen/gt9xxf/gt9xxf.c
|
||||
+++ b/drivers/input/touchscreen/gt9xxf/gt9xxf.c
|
||||
@@ -1454,6 +1454,11 @@ static s32 gtp_init_panel(struct goodix_ts_data *ts)
|
||||
GTP_INFO("gt9xx:index = %d\n",index);
|
||||
|
||||
}
|
||||
+ if (!strcmp(config_info.name,"gt911_DB2")){
|
||||
+ index = 4;
|
||||
+ GTP_INFO("gt9xx:index = %d\n",index);
|
||||
+
|
||||
+ }
|
||||
}
|
||||
#endif
|
||||
|
||||
diff --git a/drivers/input/touchscreen/gt9xxf/gt9xxf.h b/drivers/input/touchscreen/gt9xxf/gt9xxf.h
|
||||
index 3db7c68..dd2a729 100755
|
||||
--- a/drivers/input/touchscreen/gt9xxf/gt9xxf.h
|
||||
+++ b/drivers/input/touchscreen/gt9xxf/gt9xxf.h
|
||||
@@ -156,7 +156,7 @@ extern void gtp_io_init(int ms);
|
||||
|
||||
// TODO: define your config for Sensor_ID == 4 here, if needed
|
||||
#define CTP_CFG_GROUP5 {\
|
||||
- }
|
||||
+ 0x42,0x00,0x04,0x58,0x02,0x0A,0x0D,0x00,0x01,0x08,0x28,0x08,0x5A,0x46,0x03,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x87,0x28,0x0A,0x41,0x43,0xB5,0x06,0x00,0x00,0x00,0x42,0x02,0x11,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x32,0x5A,0x94,0xC5,0x02,0x08,0x00,0x00,0x04,0x98,0x35,0x00,0x8A,0x3B,0x00,0x7C,0x43,0x00,0x72,0x4B,0x00,0x67,0x55,0x00,0x67,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x14,0x12,0x10,0x0E,0x0C,0x0A,0x08,0x06,0x04,0x02,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x26,0x24,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x0C,0x0A,0x08,0x06,0x04,0x02,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x66,0x01}
|
||||
|
||||
// TODO: define your config for Sensor_ID == 5 here, if needed
|
||||
#define CTP_CFG_GROUP6 {\
|
||||
13
patch/kernel/pine64-default/disp2-fb-force-soft-cursor.patch
Normal file
13
patch/kernel/pine64-default/disp2-fb-force-soft-cursor.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/drivers/video/sunxi/disp2/disp/dev_fb.c b/drivers/video/sunxi/disp2/disp/dev_fb.c
|
||||
index cc297aa..b57fa0c 100755
|
||||
--- a/drivers/video/sunxi/disp2/disp/dev_fb.c
|
||||
+++ b/drivers/video/sunxi/disp2/disp/dev_fb.c
|
||||
@@ -682,7 +682,7 @@ static int sunxi_fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
|
||||
{
|
||||
__inf("sunxi_fb_cursor\n");
|
||||
|
||||
- return 0;
|
||||
+ return -EINVAL; /* just to force soft_cursor() call */
|
||||
}
|
||||
|
||||
s32 drv_disp_vsync_event(u32 sel)
|
||||
13
patch/kernel/sun8i-default/disp2-fb-force-soft-cursor.patch
Normal file
13
patch/kernel/sun8i-default/disp2-fb-force-soft-cursor.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/drivers/video/sunxi/disp2/disp/dev_fb.c b/drivers/video/sunxi/disp2/disp/dev_fb.c
|
||||
index cc297aa..b57fa0c 100755
|
||||
--- a/drivers/video/sunxi/disp2/disp/dev_fb.c
|
||||
+++ b/drivers/video/sunxi/disp2/disp/dev_fb.c
|
||||
@@ -682,7 +682,7 @@ static int sunxi_fb_cursor(struct fb_info *info, struct fb_cursor *cursor)
|
||||
{
|
||||
__inf("sunxi_fb_cursor\n");
|
||||
|
||||
- return 0;
|
||||
+ return -EINVAL; /* just to force soft_cursor() call */
|
||||
}
|
||||
|
||||
s32 drv_disp_vsync_event(u32 sel)
|
||||
@ -1,12 +0,0 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index e02eb72..470edde 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -1385,6 +1385,7 @@
|
||||
clock-names = "stmmaceth", "allwinner_gmac_tx";
|
||||
snps,pbl = <2>;
|
||||
snps,fixed-burst;
|
||||
+ tx-fifo-depth = <16384>;
|
||||
snps,force_sf_dma_mode;
|
||||
status = "disabled";
|
||||
#address-cells = <1>;
|
||||
15
patch/kernel/sunxi-dev/add-H27UBG8T2BTR-nand.patch
Normal file
15
patch/kernel/sunxi-dev/add-H27UBG8T2BTR-nand.patch
Normal file
@ -0,0 +1,15 @@
|
||||
diff --git a/drivers/mtd/nand/nand_ids.c b/drivers/mtd/nand/nand_ids.c
|
||||
index 2af9869..f561b36 100644
|
||||
--- a/drivers/mtd/nand/nand_ids.c
|
||||
+++ b/drivers/mtd/nand/nand_ids.c
|
||||
@@ -48,6 +48,10 @@ struct nand_flash_dev nand_flash_ids[] = {
|
||||
{"SDTNRGAMA 64G 3.3V 8-bit",
|
||||
{ .id = {0x45, 0xde, 0x94, 0x93, 0x76, 0x50} },
|
||||
SZ_16K, SZ_8K, SZ_4M, 0, 6, 1280, NAND_ECC_INFO(40, SZ_1K) },
|
||||
+ {"H27UBG8T2BTR-BC 32G 3.3V 8-bit",
|
||||
+ { .id = {0xad, 0xd7, 0x94, 0xda, 0x74, 0xc3} },
|
||||
+ SZ_8K, SZ_4K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
|
||||
+ NAND_ECC_INFO(40, SZ_1K), 0 },
|
||||
{"H27UCG8T2ATR-BC 64G 3.3V 8-bit",
|
||||
{ .id = {0xad, 0xde, 0x94, 0xda, 0x74, 0xc4} },
|
||||
SZ_8K, SZ_8K, SZ_2M, NAND_NEED_SCRAMBLING, 6, 640,
|
||||
63
patch/kernel/sunxi-dev/add-nand-pins-to-a20-dtsi.patch
Normal file
63
patch/kernel/sunxi-dev/add-nand-pins-to-a20-dtsi.patch
Normal file
@ -0,0 +1,63 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index bd0c476..5791e43 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -1389,6 +1389,58 @@
|
||||
allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
};
|
||||
+
|
||||
+ nand_pins_a: nand_base0@0 {
|
||||
+ allwinner,pins = "PC0", "PC1", "PC2",
|
||||
+ "PC5", "PC8", "PC9", "PC10",
|
||||
+ "PC11", "PC12", "PC13", "PC14",
|
||||
+ "PC15", "PC16";
|
||||
+ allwinner,function = "nand0";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
+
|
||||
+ nand_cs0_pins_a: nand_cs@0 {
|
||||
+ allwinner,pins = "PC4";
|
||||
+ allwinner,function = "nand0";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
+
|
||||
+ nand_cs1_pins_a: nand_cs@1 {
|
||||
+ allwinner,pins = "PC3";
|
||||
+ allwinner,function = "nand0";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
+
|
||||
+ nand_cs2_pins_a: nand_cs@2 {
|
||||
+ allwinner,pins = "PC17";
|
||||
+ allwinner,function = "nand0";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
+
|
||||
+ nand_cs3_pins_a: nand_cs@3 {
|
||||
+ allwinner,pins = "PC18";
|
||||
+ allwinner,function = "nand0";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
+
|
||||
+ nand_rb0_pins_a: nand_rb@0 {
|
||||
+ allwinner,pins = "PC6";
|
||||
+ allwinner,function = "nand0";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
+
|
||||
+ nand_rb1_pins_a: nand_rb@1 {
|
||||
+ allwinner,pins = "PC7";
|
||||
+ allwinner,function = "nand0";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
};
|
||||
|
||||
timer@01c20c00 {
|
||||
@ -0,0 +1,23 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
|
||||
index 7e3006f..de809ec 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
|
||||
@@ -213,6 +213,18 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&nfc {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&nand_pins_a>, <&nand_cs0_pins_a>, <&nand_rb0_pins_a>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ nand@0 {
|
||||
+ reg = <0>;
|
||||
+ allwinner,rb = <0>;
|
||||
+ nand-ecc-mode = "hw";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
60
patch/kernel/sunxi-dev/add-nand-to-a20-micro.patch
Normal file
60
patch/kernel/sunxi-dev/add-nand-to-a20-micro.patch
Normal file
@ -0,0 +1,60 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
|
||||
index 7e3006f..7e44d19 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-micro.dts
|
||||
@@ -213,6 +213,55 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&nfc {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&nand_pins_a>, <&nand_cs0_pins_a>, <&nand_rb0_pins_a>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ nand@0 {
|
||||
+ reg = <0>;
|
||||
+ allwinner,rb = <0>;
|
||||
+ nand-ecc-mode = "hw";
|
||||
+ nand-on-flash-bbt;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "SPL";
|
||||
+ reg = <0x0 0x0 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@400000 {
|
||||
+ label = "SPL.backup";
|
||||
+ reg = <0x0 0x400000 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@800000 {
|
||||
+ label = "U-Boot";
|
||||
+ reg = <0x0 0x800000 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@c00000 {
|
||||
+ label = "U-Boot.backup";
|
||||
+ reg = <0x0 0xc00000 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@1000000 {
|
||||
+ label = "env";
|
||||
+ reg = <0x0 0x1000000 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@1400000 {
|
||||
+ label = "rootfs";
|
||||
+ reg = <0x0 0x1400000 0x0 0xff000000>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
@ -0,0 +1,23 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
||||
index 83f39b0..283a446 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
||||
@@ -210,6 +210,18 @@
|
||||
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
+&nfc {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&nand_pins_a>, <&nand_cs0_pins_a>, <&nand_rb0_pins_a>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ nand@0 {
|
||||
+ reg = <0>;
|
||||
+ allwinner,rb = <0>;
|
||||
+ nand-ecc-mode = "hw";
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
61
patch/kernel/sunxi-dev/add-nand-to-cubietruck.patch
Normal file
61
patch/kernel/sunxi-dev/add-nand-to-cubietruck.patch
Normal file
@ -0,0 +1,61 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
||||
index 83f39b0..dc1d42b 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-cubietruck.dts
|
||||
@@ -210,6 +210,56 @@
|
||||
allwinner,pull = <SUN4I_PINCTRL_PULL_UP>;
|
||||
};
|
||||
|
||||
+&nfc {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&nand_pins_a>, <&nand_cs0_pins_a>, <&nand_rb0_pins_a>;
|
||||
+ status = "okay";
|
||||
+
|
||||
+ nand@0 {
|
||||
+ reg = <0>;
|
||||
+ allwinner,rb = <0>;
|
||||
+ nand-ecc-mode = "hw";
|
||||
+ nand-on-flash-bbt;
|
||||
+
|
||||
+ partitions {
|
||||
+ compatible = "fixed-partitions";
|
||||
+ #address-cells = <2>;
|
||||
+ #size-cells = <2>;
|
||||
+
|
||||
+ partition@0 {
|
||||
+ label = "SPL";
|
||||
+ reg = <0x0 0x0 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@400000 {
|
||||
+ label = "SPL.backup";
|
||||
+ reg = <0x0 0x400000 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@800000 {
|
||||
+ label = "U-Boot";
|
||||
+ reg = <0x0 0x800000 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@c00000 {
|
||||
+ label = "U-Boot.backup";
|
||||
+ reg = <0x0 0xc00000 0x0 0x400000>;
|
||||
+ };
|
||||
+
|
||||
+ partition@1000000 {
|
||||
+ label = "env";
|
||||
+ reg = <0x0 0x1000000 0x0 0x400000>;
|
||||
+ read-only;
|
||||
+ };
|
||||
+
|
||||
+ partition@1400000 {
|
||||
+ label = "rootfs";
|
||||
+ reg = <0x0 0x1400000 0x01 0xff000000>;
|
||||
+ };
|
||||
+ };
|
||||
+ };
|
||||
+};
|
||||
+
|
||||
&ohci0 {
|
||||
status = "okay";
|
||||
};
|
||||
@ -0,0 +1,35 @@
|
||||
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
|
||||
index 77533f7..8b3b184 100644
|
||||
--- a/drivers/mtd/nand/nand_base.c
|
||||
+++ b/drivers/mtd/nand/nand_base.c
|
||||
@@ -532,11 +532,7 @@ static int nand_block_checkbad(struct mtd_info *mtd, loff_t ofs, int allowbbt)
|
||||
{
|
||||
struct nand_chip *chip = mtd_to_nand(mtd);
|
||||
|
||||
- if (!chip->bbt)
|
||||
- return chip->block_bad(mtd, ofs);
|
||||
-
|
||||
- /* Return info from the table */
|
||||
- return nand_isbad_bbt(mtd, ofs, allowbbt);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -3030,16 +3026,7 @@ static int nand_block_isbad(struct mtd_info *mtd, loff_t offs)
|
||||
int chipnr = (int)(offs >> chip->chip_shift);
|
||||
int ret;
|
||||
|
||||
- /* Select the NAND device */
|
||||
- nand_get_device(mtd, FL_READING);
|
||||
- chip->select_chip(mtd, chipnr);
|
||||
-
|
||||
- ret = nand_block_checkbad(mtd, offs, 0);
|
||||
-
|
||||
- chip->select_chip(mtd, -1);
|
||||
- nand_release_device(mtd);
|
||||
-
|
||||
- return ret;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1,14 +0,0 @@
|
||||
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
|
||||
index adff463..e227f3f 100644
|
||||
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
|
||||
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-sunxi.c
|
||||
@@ -143,7 +143,9 @@ static int sun7i_gmac_probe(struct platform_device *pdev)
|
||||
/* platform data specifying hardware features and callbacks.
|
||||
* hardware features were copied from Allwinner drivers. */
|
||||
plat_dat->tx_coe = 1;
|
||||
+ plat_dat->rx_coe = 2;
|
||||
plat_dat->has_gmac = true;
|
||||
+ plat_dat->bugged_jumbo = 1;
|
||||
plat_dat->bsp_priv = gmac;
|
||||
plat_dat->init = sun7i_gmac_init;
|
||||
plat_dat->exit = sun7i_gmac_exit;
|
||||
15
patch/kernel/sunxi-next/add-codec-to-bananapro-dts.patch
Normal file
15
patch/kernel/sunxi-next/add-codec-to-bananapro-dts.patch
Normal file
@ -0,0 +1,15 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-bananapro.dts b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
|
||||
index 18fcc87..f1a3356 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-bananapro.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-bananapro.dts
|
||||
@@ -104,6 +104,10 @@
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
+&codec {
|
||||
+ status = "okay";
|
||||
+};
|
||||
+
|
||||
&ehci0 {
|
||||
status = "okay";
|
||||
};
|
||||
5541
patch/kernel/sunxi-next/b53_switch.kernel_4.5+.patch
Normal file
5541
patch/kernel/sunxi-next/b53_switch.kernel_4.5+.patch
Normal file
File diff suppressed because it is too large
Load Diff
47
patch/kernel/sunxi-next/lime2-add-A20-CAN-support.patch
Normal file
47
patch/kernel/sunxi-next/lime2-add-A20-CAN-support.patch
Normal file
@ -0,0 +1,47 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
|
||||
index d5c796c..2f90530 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-olinuxino-lime2.dts
|
||||
@@ -278,3 +278,9 @@
|
||||
usb2_vbus-supply = <®_usb2_vbus>;
|
||||
status = "okay";
|
||||
};
|
||||
+
|
||||
+&can0 {
|
||||
+ pinctrl-names = "default";
|
||||
+ pinctrl-0 = <&can0_pins_a>;
|
||||
+ status = "okay";
|
||||
+};
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20.dtsi b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
index bd0c476..8b63dde 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20.dtsi
|
||||
@@ -1229,6 +1229,13 @@
|
||||
allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
};
|
||||
|
||||
+ can0_pins_a: can0@0 {
|
||||
+ allwinner,pins = "PH20","PH21";
|
||||
+ allwinner,function = "can";
|
||||
+ allwinner,drive = <SUN4I_PINCTRL_10_MA>;
|
||||
+ allwinner,pull = <SUN4I_PINCTRL_NO_PULL>;
|
||||
+ };
|
||||
+
|
||||
ps20_pins_a: ps20@0 {
|
||||
allwinner,pins = "PI20", "PI21";
|
||||
allwinner,function = "ps2";
|
||||
@@ -1435,6 +1442,14 @@
|
||||
status = "disabled";
|
||||
};
|
||||
|
||||
+ can0: can@01c2bc00 {
|
||||
+ compatible = "allwinner,sun4i-a10-can";
|
||||
+ reg = <0x01c2bc00 0x400>;
|
||||
+ interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
|
||||
+ clocks = <&apb1_gates 4>;
|
||||
+ status = "disabled";
|
||||
+ };
|
||||
+
|
||||
ir0: ir@01c21800 {
|
||||
compatible = "allwinner,sun4i-a10-ir";
|
||||
clocks = <&apb0_gates 6>, <&ir0_clk>;
|
||||
23
patch/kernel/sunxi-next/remove-DSA-b53-driver.patch
Normal file
23
patch/kernel/sunxi-next/remove-DSA-b53-driver.patch
Normal file
@ -0,0 +1,23 @@
|
||||
diff --git a/drivers/net/dsa/Kconfig b/drivers/net/dsa/Kconfig
|
||||
index 8f45443..8a271ff 100644
|
||||
--- a/drivers/net/dsa/Kconfig
|
||||
+++ b/drivers/net/dsa/Kconfig
|
||||
@@ -20,8 +20,6 @@ config NET_DSA_BCM_SF2
|
||||
This enables support for the Broadcom Starfighter 2 Ethernet
|
||||
switch chips.
|
||||
|
||||
-source "drivers/net/dsa/b53/Kconfig"
|
||||
-
|
||||
source "drivers/net/dsa/mv88e6xxx/Kconfig"
|
||||
|
||||
endmenu
|
||||
diff --git a/drivers/net/dsa/Makefile b/drivers/net/dsa/Makefile
|
||||
index ca1e71b..e6ad39b 100644
|
||||
--- a/drivers/net/dsa/Makefile
|
||||
+++ b/drivers/net/dsa/Makefile
|
||||
@@ -1,5 +1,4 @@
|
||||
obj-$(CONFIG_NET_DSA_MV88E6060) += mv88e6060.o
|
||||
obj-$(CONFIG_NET_DSA_BCM_SF2) += bcm_sf2.o
|
||||
|
||||
-obj-y += b53/
|
||||
obj-y += mv88e6xxx/
|
||||
@ -0,0 +1,77 @@
|
||||
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
|
||||
index 73c05da..dcaa84f 100644
|
||||
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
|
||||
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
|
||||
@@ -114,68 +114,14 @@
|
||||
&gmac {
|
||||
pinctrl-names = "default";
|
||||
pinctrl-0 = <&gmac_pins_rgmii_a>;
|
||||
+ phy = <&phy1>;
|
||||
phy-mode = "rgmii";
|
||||
phy-supply = <®_gmac_3v3>;
|
||||
status = "okay";
|
||||
|
||||
- fixed-link {
|
||||
- speed = <1000>;
|
||||
- full-duplex;
|
||||
- };
|
||||
-
|
||||
- mdio {
|
||||
- compatible = "snps,dwmac-mdio";
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
-
|
||||
- switch: ethernet-switch@1e {
|
||||
- compatible = "brcm,bcm53125";
|
||||
- reg = <30>;
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
-
|
||||
- ports {
|
||||
- #address-cells = <1>;
|
||||
- #size-cells = <0>;
|
||||
-
|
||||
- port0: port@0 {
|
||||
- reg = <0>;
|
||||
- label = "lan2";
|
||||
- };
|
||||
-
|
||||
- port1: port@1 {
|
||||
- reg = <1>;
|
||||
- label = "lan3";
|
||||
- };
|
||||
-
|
||||
- port2: port@2 {
|
||||
- reg = <2>;
|
||||
- label = "lan4";
|
||||
- };
|
||||
-
|
||||
- port3: port@3 {
|
||||
- reg = <3>;
|
||||
- label = "wan";
|
||||
- };
|
||||
-
|
||||
- port4: port@4 {
|
||||
- reg = <4>;
|
||||
- label = "lan1";
|
||||
- };
|
||||
-
|
||||
- port8: port@8 {
|
||||
- reg = <8>;
|
||||
- label = "cpu";
|
||||
- ethernet = <&gmac>;
|
||||
- phy-mode = "rgmii";
|
||||
- fixed-link {
|
||||
- speed = <1000>;
|
||||
- full-duplex;
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
- };
|
||||
+ phy1: ethernet-phy@1 {
|
||||
+ reg = <1>;
|
||||
+ };
|
||||
};
|
||||
|
||||
&i2c0 {
|
||||
2368
patch/kernel/udoo-next/03-patch-4.4.28-29.patch
Normal file
2368
patch/kernel/udoo-next/03-patch-4.4.28-29.patch
Normal file
File diff suppressed because it is too large
Load Diff
434
patch/kernel/udoo-next/03-patch-4.4.29-30.patch
Normal file
434
patch/kernel/udoo-next/03-patch-4.4.29-30.patch
Normal file
@ -0,0 +1,434 @@
|
||||
diff --git a/Documentation/x86/exception-tables.txt b/Documentation/x86/exception-tables.txt
|
||||
index e396bcd8d830..32901aa36f0a 100644
|
||||
--- a/Documentation/x86/exception-tables.txt
|
||||
+++ b/Documentation/x86/exception-tables.txt
|
||||
@@ -290,38 +290,3 @@ Due to the way that the exception table is built and needs to be ordered,
|
||||
only use exceptions for code in the .text section. Any other section
|
||||
will cause the exception table to not be sorted correctly, and the
|
||||
exceptions will fail.
|
||||
-
|
||||
-Things changed when 64-bit support was added to x86 Linux. Rather than
|
||||
-double the size of the exception table by expanding the two entries
|
||||
-from 32-bits to 64 bits, a clever trick was used to store addresses
|
||||
-as relative offsets from the table itself. The assembly code changed
|
||||
-from:
|
||||
- .long 1b,3b
|
||||
-to:
|
||||
- .long (from) - .
|
||||
- .long (to) - .
|
||||
-
|
||||
-and the C-code that uses these values converts back to absolute addresses
|
||||
-like this:
|
||||
-
|
||||
- ex_insn_addr(const struct exception_table_entry *x)
|
||||
- {
|
||||
- return (unsigned long)&x->insn + x->insn;
|
||||
- }
|
||||
-
|
||||
-In v4.6 the exception table entry was expanded with a new field "handler".
|
||||
-This is also 32-bits wide and contains a third relative function
|
||||
-pointer which points to one of:
|
||||
-
|
||||
-1) int ex_handler_default(const struct exception_table_entry *fixup)
|
||||
- This is legacy case that just jumps to the fixup code
|
||||
-2) int ex_handler_fault(const struct exception_table_entry *fixup)
|
||||
- This case provides the fault number of the trap that occurred at
|
||||
- entry->insn. It is used to distinguish page faults from machine
|
||||
- check.
|
||||
-3) int ex_handler_ext(const struct exception_table_entry *fixup)
|
||||
- This case is used for uaccess_err ... we need to set a flag
|
||||
- in the task structure. Before the handler functions existed this
|
||||
- case was handled by adding a large offset to the fixup to tag
|
||||
- it as special.
|
||||
-More functions can easily be added.
|
||||
diff --git a/Makefile b/Makefile
|
||||
index 19d7d9f68e35..98239d56924c 100644
|
||||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -1,6 +1,6 @@
|
||||
VERSION = 4
|
||||
PATCHLEVEL = 4
|
||||
-SUBLEVEL = 29
|
||||
+SUBLEVEL = 30
|
||||
EXTRAVERSION =
|
||||
NAME = Blurry Fish Butt
|
||||
|
||||
diff --git a/arch/x86/include/asm/asm.h b/arch/x86/include/asm/asm.h
|
||||
index f5063b6659eb..189679aba703 100644
|
||||
--- a/arch/x86/include/asm/asm.h
|
||||
+++ b/arch/x86/include/asm/asm.h
|
||||
@@ -44,22 +44,19 @@
|
||||
|
||||
/* Exception table entry */
|
||||
#ifdef __ASSEMBLY__
|
||||
-# define _ASM_EXTABLE_HANDLE(from, to, handler) \
|
||||
+# define _ASM_EXTABLE(from,to) \
|
||||
.pushsection "__ex_table","a" ; \
|
||||
- .balign 4 ; \
|
||||
+ .balign 8 ; \
|
||||
.long (from) - . ; \
|
||||
.long (to) - . ; \
|
||||
- .long (handler) - . ; \
|
||||
.popsection
|
||||
|
||||
-# define _ASM_EXTABLE(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_default)
|
||||
-
|
||||
-# define _ASM_EXTABLE_FAULT(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_fault)
|
||||
-
|
||||
-# define _ASM_EXTABLE_EX(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_ext)
|
||||
+# define _ASM_EXTABLE_EX(from,to) \
|
||||
+ .pushsection "__ex_table","a" ; \
|
||||
+ .balign 8 ; \
|
||||
+ .long (from) - . ; \
|
||||
+ .long (to) - . + 0x7ffffff0 ; \
|
||||
+ .popsection
|
||||
|
||||
# define _ASM_NOKPROBE(entry) \
|
||||
.pushsection "_kprobe_blacklist","aw" ; \
|
||||
@@ -92,24 +89,19 @@
|
||||
.endm
|
||||
|
||||
#else
|
||||
-# define _EXPAND_EXTABLE_HANDLE(x) #x
|
||||
-# define _ASM_EXTABLE_HANDLE(from, to, handler) \
|
||||
+# define _ASM_EXTABLE(from,to) \
|
||||
" .pushsection \"__ex_table\",\"a\"\n" \
|
||||
- " .balign 4\n" \
|
||||
+ " .balign 8\n" \
|
||||
" .long (" #from ") - .\n" \
|
||||
" .long (" #to ") - .\n" \
|
||||
- " .long (" _EXPAND_EXTABLE_HANDLE(handler) ") - .\n" \
|
||||
" .popsection\n"
|
||||
|
||||
-# define _ASM_EXTABLE(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_default)
|
||||
-
|
||||
-# define _ASM_EXTABLE_FAULT(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_fault)
|
||||
-
|
||||
-# define _ASM_EXTABLE_EX(from, to) \
|
||||
- _ASM_EXTABLE_HANDLE(from, to, ex_handler_ext)
|
||||
-
|
||||
+# define _ASM_EXTABLE_EX(from,to) \
|
||||
+ " .pushsection \"__ex_table\",\"a\"\n" \
|
||||
+ " .balign 8\n" \
|
||||
+ " .long (" #from ") - .\n" \
|
||||
+ " .long (" #to ") - . + 0x7ffffff0\n" \
|
||||
+ " .popsection\n"
|
||||
/* For C file, we already have NOKPROBE_SYMBOL macro */
|
||||
#endif
|
||||
|
||||
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
|
||||
index 3794c7331cfc..09b1b0ab94b7 100644
|
||||
--- a/arch/x86/include/asm/uaccess.h
|
||||
+++ b/arch/x86/include/asm/uaccess.h
|
||||
@@ -90,11 +90,12 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
|
||||
likely(!__range_not_ok(addr, size, user_addr_max()))
|
||||
|
||||
/*
|
||||
- * The exception table consists of triples of addresses relative to the
|
||||
- * exception table entry itself. The first address is of an instruction
|
||||
- * that is allowed to fault, the second is the target at which the program
|
||||
- * should continue. The third is a handler function to deal with the fault
|
||||
- * caused by the instruction in the first field.
|
||||
+ * The exception table consists of pairs of addresses relative to the
|
||||
+ * exception table enty itself: the first is the address of an
|
||||
+ * instruction that is allowed to fault, and the second is the address
|
||||
+ * at which the program should continue. No registers are modified,
|
||||
+ * so it is entirely up to the continuation code to figure out what to
|
||||
+ * do.
|
||||
*
|
||||
* All the routines below use bits of fixup code that are out of line
|
||||
* with the main instruction path. This means when everything is well,
|
||||
@@ -103,14 +104,13 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
|
||||
*/
|
||||
|
||||
struct exception_table_entry {
|
||||
- int insn, fixup, handler;
|
||||
+ int insn, fixup;
|
||||
};
|
||||
/* This is not the generic standard exception_table_entry format */
|
||||
#define ARCH_HAS_SORT_EXTABLE
|
||||
#define ARCH_HAS_SEARCH_EXTABLE
|
||||
|
||||
-extern int fixup_exception(struct pt_regs *regs, int trapnr);
|
||||
-extern bool ex_has_fault_handler(unsigned long ip);
|
||||
+extern int fixup_exception(struct pt_regs *regs);
|
||||
extern int early_fixup_exception(unsigned long *ip);
|
||||
|
||||
/*
|
||||
@@ -394,11 +394,7 @@ do { \
|
||||
#define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
|
||||
asm volatile("1: mov"itype" %1,%"rtype"0\n" \
|
||||
"2:\n" \
|
||||
- ".section .fixup,\"ax\"\n" \
|
||||
- "3:xor"itype" %"rtype"0,%"rtype"0\n" \
|
||||
- " jmp 2b\n" \
|
||||
- ".previous\n" \
|
||||
- _ASM_EXTABLE_EX(1b, 3b) \
|
||||
+ _ASM_EXTABLE_EX(1b, 2b) \
|
||||
: ltype(x) : "m" (__m(addr)))
|
||||
|
||||
#define __put_user_nocheck(x, ptr, size) \
|
||||
diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
|
||||
index e1d1f6cbaf11..023c442c33bb 100644
|
||||
--- a/arch/x86/kernel/kprobes/core.c
|
||||
+++ b/arch/x86/kernel/kprobes/core.c
|
||||
@@ -1000,7 +1000,7 @@ int kprobe_fault_handler(struct pt_regs *regs, int trapnr)
|
||||
* In case the user-specified fault handler returned
|
||||
* zero, try to fix up.
|
||||
*/
|
||||
- if (fixup_exception(regs, trapnr))
|
||||
+ if (fixup_exception(regs))
|
||||
return 1;
|
||||
|
||||
/*
|
||||
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
|
||||
index 5621f882645e..679302c312f8 100644
|
||||
--- a/arch/x86/kernel/traps.c
|
||||
+++ b/arch/x86/kernel/traps.c
|
||||
@@ -199,7 +199,7 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
|
||||
}
|
||||
|
||||
if (!user_mode(regs)) {
|
||||
- if (!fixup_exception(regs, trapnr)) {
|
||||
+ if (!fixup_exception(regs)) {
|
||||
tsk->thread.error_code = error_code;
|
||||
tsk->thread.trap_nr = trapnr;
|
||||
die(str, regs, error_code);
|
||||
@@ -453,7 +453,7 @@ do_general_protection(struct pt_regs *regs, long error_code)
|
||||
|
||||
tsk = current;
|
||||
if (!user_mode(regs)) {
|
||||
- if (fixup_exception(regs, X86_TRAP_GP))
|
||||
+ if (fixup_exception(regs))
|
||||
return;
|
||||
|
||||
tsk->thread.error_code = error_code;
|
||||
@@ -699,7 +699,7 @@ static void math_error(struct pt_regs *regs, int error_code, int trapnr)
|
||||
conditional_sti(regs);
|
||||
|
||||
if (!user_mode(regs)) {
|
||||
- if (!fixup_exception(regs, trapnr)) {
|
||||
+ if (!fixup_exception(regs)) {
|
||||
task->thread.error_code = error_code;
|
||||
task->thread.trap_nr = trapnr;
|
||||
die(str, regs, error_code);
|
||||
diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
|
||||
index 9dd7e4b7fcde..903ec1e9c326 100644
|
||||
--- a/arch/x86/mm/extable.c
|
||||
+++ b/arch/x86/mm/extable.c
|
||||
@@ -3,9 +3,6 @@
|
||||
#include <linux/sort.h>
|
||||
#include <asm/uaccess.h>
|
||||
|
||||
-typedef bool (*ex_handler_t)(const struct exception_table_entry *,
|
||||
- struct pt_regs *, int);
|
||||
-
|
||||
static inline unsigned long
|
||||
ex_insn_addr(const struct exception_table_entry *x)
|
||||
{
|
||||
@@ -16,56 +13,11 @@ ex_fixup_addr(const struct exception_table_entry *x)
|
||||
{
|
||||
return (unsigned long)&x->fixup + x->fixup;
|
||||
}
|
||||
-static inline ex_handler_t
|
||||
-ex_fixup_handler(const struct exception_table_entry *x)
|
||||
-{
|
||||
- return (ex_handler_t)((unsigned long)&x->handler + x->handler);
|
||||
-}
|
||||
-
|
||||
-bool ex_handler_default(const struct exception_table_entry *fixup,
|
||||
- struct pt_regs *regs, int trapnr)
|
||||
-{
|
||||
- regs->ip = ex_fixup_addr(fixup);
|
||||
- return true;
|
||||
-}
|
||||
-EXPORT_SYMBOL(ex_handler_default);
|
||||
-
|
||||
-bool ex_handler_fault(const struct exception_table_entry *fixup,
|
||||
- struct pt_regs *regs, int trapnr)
|
||||
-{
|
||||
- regs->ip = ex_fixup_addr(fixup);
|
||||
- regs->ax = trapnr;
|
||||
- return true;
|
||||
-}
|
||||
-EXPORT_SYMBOL_GPL(ex_handler_fault);
|
||||
-
|
||||
-bool ex_handler_ext(const struct exception_table_entry *fixup,
|
||||
- struct pt_regs *regs, int trapnr)
|
||||
-{
|
||||
- /* Special hack for uaccess_err */
|
||||
- current_thread_info()->uaccess_err = 1;
|
||||
- regs->ip = ex_fixup_addr(fixup);
|
||||
- return true;
|
||||
-}
|
||||
-EXPORT_SYMBOL(ex_handler_ext);
|
||||
-
|
||||
-bool ex_has_fault_handler(unsigned long ip)
|
||||
-{
|
||||
- const struct exception_table_entry *e;
|
||||
- ex_handler_t handler;
|
||||
-
|
||||
- e = search_exception_tables(ip);
|
||||
- if (!e)
|
||||
- return false;
|
||||
- handler = ex_fixup_handler(e);
|
||||
-
|
||||
- return handler == ex_handler_fault;
|
||||
-}
|
||||
|
||||
-int fixup_exception(struct pt_regs *regs, int trapnr)
|
||||
+int fixup_exception(struct pt_regs *regs)
|
||||
{
|
||||
- const struct exception_table_entry *e;
|
||||
- ex_handler_t handler;
|
||||
+ const struct exception_table_entry *fixup;
|
||||
+ unsigned long new_ip;
|
||||
|
||||
#ifdef CONFIG_PNPBIOS
|
||||
if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
|
||||
@@ -81,34 +33,42 @@ int fixup_exception(struct pt_regs *regs, int trapnr)
|
||||
}
|
||||
#endif
|
||||
|
||||
- e = search_exception_tables(regs->ip);
|
||||
- if (!e)
|
||||
- return 0;
|
||||
+ fixup = search_exception_tables(regs->ip);
|
||||
+ if (fixup) {
|
||||
+ new_ip = ex_fixup_addr(fixup);
|
||||
+
|
||||
+ if (fixup->fixup - fixup->insn >= 0x7ffffff0 - 4) {
|
||||
+ /* Special hack for uaccess_err */
|
||||
+ current_thread_info()->uaccess_err = 1;
|
||||
+ new_ip -= 0x7ffffff0;
|
||||
+ }
|
||||
+ regs->ip = new_ip;
|
||||
+ return 1;
|
||||
+ }
|
||||
|
||||
- handler = ex_fixup_handler(e);
|
||||
- return handler(e, regs, trapnr);
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/* Restricted version used during very early boot */
|
||||
int __init early_fixup_exception(unsigned long *ip)
|
||||
{
|
||||
- const struct exception_table_entry *e;
|
||||
+ const struct exception_table_entry *fixup;
|
||||
unsigned long new_ip;
|
||||
- ex_handler_t handler;
|
||||
|
||||
- e = search_exception_tables(*ip);
|
||||
- if (!e)
|
||||
- return 0;
|
||||
+ fixup = search_exception_tables(*ip);
|
||||
+ if (fixup) {
|
||||
+ new_ip = ex_fixup_addr(fixup);
|
||||
|
||||
- new_ip = ex_fixup_addr(e);
|
||||
- handler = ex_fixup_handler(e);
|
||||
+ if (fixup->fixup - fixup->insn >= 0x7ffffff0 - 4) {
|
||||
+ /* uaccess handling not supported during early boot */
|
||||
+ return 0;
|
||||
+ }
|
||||
|
||||
- /* special handling not supported during early boot */
|
||||
- if (handler != ex_handler_default)
|
||||
- return 0;
|
||||
+ *ip = new_ip;
|
||||
+ return 1;
|
||||
+ }
|
||||
|
||||
- *ip = new_ip;
|
||||
- return 1;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -173,8 +133,6 @@ void sort_extable(struct exception_table_entry *start,
|
||||
i += 4;
|
||||
p->fixup += i;
|
||||
i += 4;
|
||||
- p->handler += i;
|
||||
- i += 4;
|
||||
}
|
||||
|
||||
sort(start, finish - start, sizeof(struct exception_table_entry),
|
||||
@@ -187,8 +145,6 @@ void sort_extable(struct exception_table_entry *start,
|
||||
i += 4;
|
||||
p->fixup -= i;
|
||||
i += 4;
|
||||
- p->handler -= i;
|
||||
- i += 4;
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
|
||||
index 03898aea6e0f..e830c71a1323 100644
|
||||
--- a/arch/x86/mm/fault.c
|
||||
+++ b/arch/x86/mm/fault.c
|
||||
@@ -663,7 +663,7 @@ no_context(struct pt_regs *regs, unsigned long error_code,
|
||||
int sig;
|
||||
|
||||
/* Are we prepared to handle this kernel fault? */
|
||||
- if (fixup_exception(regs, X86_TRAP_PF)) {
|
||||
+ if (fixup_exception(regs)) {
|
||||
/*
|
||||
* Any interrupt that takes a fault gets the fixup. This makes
|
||||
* the below recursive fault logic only apply to a faults from
|
||||
diff --git a/scripts/sortextable.c b/scripts/sortextable.c
|
||||
index 7b29fb14f870..c2423d913b46 100644
|
||||
--- a/scripts/sortextable.c
|
||||
+++ b/scripts/sortextable.c
|
||||
@@ -209,35 +209,6 @@ static int compare_relative_table(const void *a, const void *b)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-static void x86_sort_relative_table(char *extab_image, int image_size)
|
||||
-{
|
||||
- int i;
|
||||
-
|
||||
- i = 0;
|
||||
- while (i < image_size) {
|
||||
- uint32_t *loc = (uint32_t *)(extab_image + i);
|
||||
-
|
||||
- w(r(loc) + i, loc);
|
||||
- w(r(loc + 1) + i + 4, loc + 1);
|
||||
- w(r(loc + 2) + i + 8, loc + 2);
|
||||
-
|
||||
- i += sizeof(uint32_t) * 3;
|
||||
- }
|
||||
-
|
||||
- qsort(extab_image, image_size / 12, 12, compare_relative_table);
|
||||
-
|
||||
- i = 0;
|
||||
- while (i < image_size) {
|
||||
- uint32_t *loc = (uint32_t *)(extab_image + i);
|
||||
-
|
||||
- w(r(loc) - i, loc);
|
||||
- w(r(loc + 1) - (i + 4), loc + 1);
|
||||
- w(r(loc + 2) - (i + 8), loc + 2);
|
||||
-
|
||||
- i += sizeof(uint32_t) * 3;
|
||||
- }
|
||||
-}
|
||||
-
|
||||
static void sort_relative_table(char *extab_image, int image_size)
|
||||
{
|
||||
int i;
|
||||
@@ -310,9 +281,6 @@ do_file(char const *const fname)
|
||||
break;
|
||||
case EM_386:
|
||||
case EM_X86_64:
|
||||
- custom_sort = x86_sort_relative_table;
|
||||
- break;
|
||||
-
|
||||
case EM_S390:
|
||||
custom_sort = sort_relative_table;
|
||||
break;
|
||||
@ -1,30 +0,0 @@
|
||||
diff --git a/configs/orangepi_pc_plus_defconfig b/configs/orangepi_pc_plus_defconfig
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index 8caca59..ba8251b
|
||||
--- a/configs/orangepi_pc_plus_defconfig
|
||||
+++ b/configs/orangepi_pc_plus_defconfig
|
||||
@@ -5,7 +5,7 @@ CONFIG_DRAM_CLK=624
|
||||
CONFIG_DRAM_ZQ=3881979
|
||||
CONFIG_DRAM_ODT_EN=y
|
||||
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
-CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-pc-plus"
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-pc"
|
||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
CONFIG_SPL=y
|
||||
# CONFIG_CMD_IMLS is not set
|
||||
diff --git a/configs/orangepi_plus2e_defconfig b/configs/orangepi_plus2e_defconfig
|
||||
old mode 100644
|
||||
new mode 100755
|
||||
index 579bc70..cd3fd3d
|
||||
--- a/configs/orangepi_plus2e_defconfig
|
||||
+++ b/configs/orangepi_plus2e_defconfig
|
||||
@@ -5,7 +5,7 @@ CONFIG_DRAM_CLK=624
|
||||
CONFIG_DRAM_ZQ=3881979
|
||||
CONFIG_DRAM_ODT_EN=y
|
||||
CONFIG_MMC_SUNXI_SLOT_EXTRA=2
|
||||
-CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-plus2e"
|
||||
+CONFIG_DEFAULT_DEVICE_TREE="sun8i-h3-orangepi-plus"
|
||||
# CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set
|
||||
CONFIG_SPL=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="MACPWR=SUNXI_GPD(6)"
|
||||
Loading…
Reference in New Issue
Block a user