Merge pull request #167 from ertugerata/kernel-4.3

Kernel 4.3
This commit is contained in:
Ertuğrul Erata
2015-12-02 13:07:18 +02:00
42 changed files with 38279 additions and 93592 deletions
+9 -2
View File
@@ -11,7 +11,7 @@
<Summary>Kernel module allowing to switch dedicated graphics card on Optimus laptops</Summary>
<Description>kernel module allowing to switch dedicated graphics card on Optimus laptops</Description>
<BuildDependencies>
<Dependency version="4.2.6">kernel-module-headers</Dependency>
<Dependency version="4.3.0">kernel-module-headers</Dependency>
</BuildDependencies>
<Archive sha1sum="e282ee682d794e3962baa4dead01917c42571e78" type="targz">https://github.com/Bumblebee-Project/bbswitch/archive/v0.8.tar.gz</Archive>
<Patches>
@@ -20,7 +20,7 @@
<Package>
<Name>module-bbswitch</Name>
<RuntimeDependencies>
<Dependency version="4.2.6">kernel</Dependency>
<Dependency version="4.3.0">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -34,6 +34,13 @@
</Package>
<History>
<Update release="35">
<Date>2015-12-01</Date>
<Version>0.8</Version>
<Comment>Rebuild for kernel-4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="34">
<Date>2015-11-11</Date>
<Version>0.8</Version>
+9 -2
View File
@@ -15,7 +15,7 @@
<Archive sha1sum="e02beac9cc713011551c483ae5f20f065f5b88c7" type="targz" target="i686">http://www.broadcom.com/docs/linux_sta/hybrid-v35-nodebug-pcoem-6_30_223_248.tar.gz</Archive>
<Archive sha1sum="bd55f1fdc6b0a4d0a70dc4ba4bb4169a824e238c" type="targz" target="x86_64">http://www.broadcom.com/docs/linux_sta/hybrid-v35_64-nodebug-pcoem-6_30_223_248.tar.gz</Archive>
<BuildDependencies>
<Dependency version="4.2.6">kernel-module-headers</Dependency>
<Dependency version="4.3.0">kernel-module-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch level="1">patch/linux-40.patch</Patch>
@@ -32,7 +32,7 @@
<Package>
<Name>module-broadcom-wl</Name>
<RuntimeDependencies>
<Dependency version="4.2.6">kernel</Dependency>
<Dependency version="4.3.0">kernel</Dependency>
<Dependency release="current">module-broadcom-wl-userspace</Dependency>
</RuntimeDependencies>
<Replaces>
@@ -64,6 +64,13 @@
</Package>
<History>
<Update release="55">
<Date>2015-12-01</Date>
<Version>6.30.223.248</Version>
<Comment>Rebuild for kernel 4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="54">
<Date>2015-11-11</Date>
<Version>6.30.223.248</Version>
@@ -14,14 +14,14 @@
<Description>This package provides the kernel modules needed for mouse integration and shared folder support between VirtualBox host and guest systems.</Description>
<Archive sha1sum="cd1f7c62e17ef3d9b5f7aef7d83fd160355eb396" type="tarxz">http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-guest-5.0.4.tar.xz</Archive>
<BuildDependencies>
<Dependency version="4.2.6">kernel-module-headers</Dependency>
<Dependency version="4.3.0">kernel-module-headers</Dependency>
</BuildDependencies>
</Source>
<Package>
<Name>module-virtualbox-guest</Name>
<RuntimeDependencies>
<Dependency version="4.2.6">kernel</Dependency>
<Dependency version="4.3.0">kernel</Dependency>
<Dependency>baselayout</Dependency>
<Dependency version="current">module-virtualbox-guest-userspace</Dependency>
</RuntimeDependencies>
@@ -52,6 +52,13 @@
</Package>
<History>
<Update release="56">
<Date>2015-12-01</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="55">
<Date>2015-11-11</Date>
<Version>5.0.4</Version>
@@ -0,0 +1,39 @@
#
# https://forums.virtualbox.org/viewtopic.php?uid=80969&f=7&t=70150&start=0
# kernel 4.3-rc1 heads up
#
--- ./vboxdrv/linux/SUPDrv-linux.c.orig 2015-09-25 20:56:04.704532570 -0700
+++ ./vboxdrv/linux/SUPDrv-linux.c 2015-09-25 20:57:17.265521751 -0700
@@ -485,6 +485,7 @@
* opened, at least we'll blindly assume that here.
*/
#ifdef CONFIG_VBOXDRV_AS_MISC
+#if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
rc = misc_deregister(&gMiscDeviceUsr);
if (rc < 0)
{
@@ -495,6 +496,10 @@
{
Log(("misc_deregister failed with rc=%#x on vboxdrv\n", rc));
}
+#else
+ misc_deregister(&gMiscDeviceUsr);
+ misc_deregister(&gMiscDeviceSys);
+#endif
#else /* !CONFIG_VBOXDRV_AS_MISC */
# ifdef CONFIG_DEVFS_FS
/*
--- ./vboxnetadp/linux/VBoxNetAdp-linux.c.orig 2015-09-25 20:55:42.309667865 -0700
+++ ./vboxnetadp/linux/VBoxNetAdp-linux.c 2015-09-25 20:58:49.331034237 -0700
@@ -436,7 +436,11 @@
vboxNetAdpShutdown();
/* Remove control device */
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(4,3,0)
rc = misc_deregister(&g_CtlDev);
+ #else
+ misc_deregister(&g_CtlDev);
+ #endif
if (rc < 0)
{
printk(KERN_ERR "misc_deregister failed with rc=%x\n", rc);
+12 -2
View File
@@ -14,14 +14,17 @@
<Description>This package provides the kernel support for VirtualBox.</Description>
<Archive sha1sum="14e3d8630f779dc1349d9aa488fa7e6604b9ba3e" type="tarxz">http://sourceforge.net/projects/pisilinux/files/source/module-virtualbox-5.0.4.tar.xz</Archive>
<BuildDependencies>
<Dependency version="4.2.6">kernel-module-headers</Dependency>
<Dependency version="4.3.0">kernel-module-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch>vbox_linux-4.3.diff</Patch>
</Patches>
</Source>
<Package>
<Name>module-virtualbox</Name>
<RuntimeDependencies>
<Dependency version="4.2.6">kernel</Dependency>
<Dependency version="4.3.0">kernel</Dependency>
<Dependency version="current">module-virtualbox-userspace</Dependency>
</RuntimeDependencies>
<Files>
@@ -47,6 +50,13 @@
</Package>
<History>
<Update release="58">
<Date>2015-12-01</Date>
<Version>5.0.4</Version>
<Comment>Rebuild for kernel-4.3.0.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="57">
<Date>2015-11-11</Date>
<Version>5.0.4</Version>
+9 -2
View File
@@ -15,7 +15,7 @@
<Description>module-ndiswrapper allows you to use Windows XP drivers for WLAN cards without proper Linux drivers.</Description>
<Archive sha1sum="75fbbda677fe91ee07a6f6a8e19b1f3e2479540f" type="targz">http://download.sourceforge.net/ndiswrapper/ndiswrapper-1.59.tar.gz</Archive>
<BuildDependencies>
<Dependency version="4.2.6">kernel-module-headers</Dependency>
<Dependency version="4.3.0">kernel-module-headers</Dependency>
</BuildDependencies>
<Patches>
<Patch>support_kernel-4.0.patch</Patch>
@@ -29,7 +29,7 @@
<Package>
<Name>ndiswrapper</Name>
<RuntimeDependencies>
<Dependency version="4.2.6">kernel</Dependency>
<Dependency version="4.3.0">kernel</Dependency>
</RuntimeDependencies>
<Files>
<Path fileType="library" permanent="true">/lib/modules</Path>
@@ -45,6 +45,13 @@
</Package>
<History>
<Update release="9">
<Date>2015-12-01</Date>
<Version>1.59</Version>
<Comment>Rebuild for kernel-4.2.6.</Comment>
<Name>PisiLinux Community</Name>
<Email>admins@pisilinux.org</Email>
</Update>
<Update release="8">
<Date>2014-11-11</Date>
<Version>1.59</Version>
+123 -53
View File
@@ -1,6 +1,6 @@
#
# Automatically generated file; DO NOT EDIT.
# Linux/x86_64 4.2.6 Kernel Configuration
# Linux/x86_64 4.3.0 Kernel Configuration
#
CONFIG_64BIT=y
CONFIG_X86_64=y
@@ -136,10 +136,6 @@ CONFIG_SRCU=y
# CONFIG_TASKS_RCU is not set
CONFIG_RCU_STALL_COMMON=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_NOCB_CPU=y
# CONFIG_RCU_NOCB_CPU_NONE is not set
# CONFIG_RCU_NOCB_CPU_ZERO is not set
CONFIG_RCU_NOCB_CPU_ALL=y
# CONFIG_RCU_EXPEDITE_BOOT is not set
CONFIG_BUILD_BIN2C=y
CONFIG_IKCONFIG=y
@@ -148,11 +144,13 @@ CONFIG_LOG_BUF_SHIFT=18
CONFIG_LOG_CPU_MAX_BUF_SHIFT=12
CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y
CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y
CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y
CONFIG_ARCH_SUPPORTS_INT128=y
# CONFIG_NUMA_BALANCING is not set
CONFIG_CGROUPS=y
CONFIG_CGROUP_DEBUG=y
CONFIG_CGROUP_FREEZER=y
CONFIG_CGROUP_PIDS=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CPUSETS=y
CONFIG_PROC_PID_CPUSET=y
@@ -217,7 +215,9 @@ CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_AIO=y
CONFIG_ADVISE_SYSCALLS=y
# CONFIG_USERFAULTFD is not set
CONFIG_PCI_QUIRKS=y
CONFIG_MEMBARRIER=y
# CONFIG_EMBEDDED is not set
CONFIG_HAVE_PERF_EVENTS=y
@@ -229,15 +229,17 @@ CONFIG_VM_EVENT_COUNTERS=y
# CONFIG_COMPAT_BRK is not set
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
# CONFIG_SYSTEM_DATA_VERIFICATION is not set
CONFIG_PROFILING=y
CONFIG_TRACEPOINTS=y
CONFIG_KEXEC_CORE=y
CONFIG_OPROFILE=m
CONFIG_OPROFILE_EVENT_MULTIPLEX=y
CONFIG_HAVE_OPROFILE=y
CONFIG_OPROFILE_NMI_TIMER=y
CONFIG_KPROBES=y
CONFIG_JUMP_LABEL=y
# CONFIG_STATIC_KEYS_SELFTEST is not set
CONFIG_OPTPROBES=y
CONFIG_KPROBES_ON_FTRACE=y
CONFIG_UPROBES=y
@@ -396,7 +398,7 @@ CONFIG_PARAVIRT=y
CONFIG_XEN=y
CONFIG_XEN_DOM0=y
CONFIG_XEN_PVHVM=y
CONFIG_XEN_MAX_DOMAIN_MEMORY=500
CONFIG_XEN_512GB=y
CONFIG_XEN_SAVE_RESTORE=y
CONFIG_XEN_DEBUG_FS=y
CONFIG_XEN_PVH=y
@@ -442,6 +444,7 @@ CONFIG_X86_MCE_AMD=y
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
# CONFIG_VM86 is not set
CONFIG_X86_16BIT=y
CONFIG_X86_ESPFIX64=y
CONFIG_X86_VSYSCALL_EMULATION=y
@@ -496,7 +499,6 @@ CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y
CONFIG_PHYS_ADDR_T_64BIT=y
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_NEED_BOUNCE_POOL=y
CONFIG_VIRT_TO_BUS=y
CONFIG_MMU_NOTIFIER=y
CONFIG_KSM=y
@@ -516,6 +518,8 @@ CONFIG_ZPOOL=y
CONFIG_GENERIC_EARLY_IOREMAP=y
CONFIG_ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT=y
# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set
# CONFIG_IDLE_PAGE_TRACKING is not set
CONFIG_FRAME_VECTOR=y
# CONFIG_X86_PMEM_LEGACY is not set
CONFIG_X86_CHECK_BIOS_CORRUPTION=y
CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y
@@ -554,6 +558,7 @@ CONFIG_HOTPLUG_CPU=y
# CONFIG_DEBUG_HOTPLUG_CPU0 is not set
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_MODIFY_LDT_SYSCALL=y
CONFIG_HAVE_LIVEPATCH=y
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
CONFIG_ARCH_ENABLE_MEMORY_HOTREMOVE=y
@@ -596,6 +601,8 @@ CONFIG_ACPI_BUTTON=y
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=y
CONFIG_ACPI_DOCK=y
CONFIG_ACPI_CPU_FREQ_PSS=y
CONFIG_ACPI_PROCESSOR_IDLE=y
CONFIG_ACPI_PROCESSOR=y
CONFIG_ACPI_IPMI=m
CONFIG_ACPI_HOTPLUG_CPU=y
@@ -802,7 +809,6 @@ CONFIG_NET_IPVTI=m
CONFIG_NET_UDP_TUNNEL=m
# CONFIG_NET_FOU is not set
# CONFIG_NET_FOU_IP_TUNNELS is not set
# CONFIG_GENEVE_CORE is not set
CONFIG_INET_AH=m
CONFIG_INET_ESP=m
CONFIG_INET_IPCOMP=m
@@ -842,6 +848,7 @@ CONFIG_INET6_AH=m
CONFIG_INET6_ESP=m
CONFIG_INET6_IPCOMP=m
CONFIG_IPV6_MIP6=y
CONFIG_IPV6_ILA=m
CONFIG_INET6_XFRM_TUNNEL=m
CONFIG_INET6_TUNNEL=m
CONFIG_INET6_XFRM_MODE_TRANSPORT=m
@@ -1062,6 +1069,7 @@ CONFIG_IP_VS_WRR=m
CONFIG_IP_VS_LC=m
CONFIG_IP_VS_WLC=m
# CONFIG_IP_VS_FO is not set
CONFIG_IP_VS_OVF=m
CONFIG_IP_VS_LBLC=m
CONFIG_IP_VS_LBLCR=m
CONFIG_IP_VS_DH=m
@@ -1090,7 +1098,9 @@ CONFIG_NF_CONNTRACK_IPV4=m
CONFIG_NF_TABLES_IPV4=m
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
CONFIG_NFT_REJECT_IPV4=m
CONFIG_NFT_DUP_IPV4=m
CONFIG_NF_TABLES_ARP=m
CONFIG_NF_DUP_IPV4=m
CONFIG_NF_LOG_ARP=m
CONFIG_NF_LOG_IPV4=m
CONFIG_NF_REJECT_IPV4=y
@@ -1133,6 +1143,8 @@ CONFIG_NF_CONNTRACK_IPV6=m
CONFIG_NF_TABLES_IPV6=m
CONFIG_NFT_CHAIN_ROUTE_IPV6=m
CONFIG_NFT_REJECT_IPV6=m
CONFIG_NFT_DUP_IPV6=m
CONFIG_NF_DUP_IPV6=m
CONFIG_NF_REJECT_IPV6=m
CONFIG_NF_LOG_IPV6=m
CONFIG_NF_NAT_IPV6=m
@@ -1336,6 +1348,7 @@ CONFIG_BATMAN_ADV_DAT=y
CONFIG_OPENVSWITCH=m
CONFIG_OPENVSWITCH_GRE=m
CONFIG_OPENVSWITCH_VXLAN=m
CONFIG_OPENVSWITCH_GENEVE=m
CONFIG_VSOCKETS=m
CONFIG_VMWARE_VMCI_VSOCKETS=m
CONFIG_NETLINK_MMAP=y
@@ -1343,6 +1356,7 @@ CONFIG_NETLINK_DIAG=m
CONFIG_MPLS=y
CONFIG_NET_MPLS_GSO=m
CONFIG_MPLS_ROUTING=m
CONFIG_MPLS_IPTUNNEL=m
CONFIG_HSR=m
# CONFIG_NET_SWITCHDEV is not set
CONFIG_RPS=y
@@ -1447,6 +1461,7 @@ CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_CMTP=m
CONFIG_BT_HIDP=m
CONFIG_BT_HS=y
CONFIG_BT_LE=y
CONFIG_BT_6LOWPAN=m
CONFIG_BT_DEBUGFS=y
@@ -1457,6 +1472,7 @@ CONFIG_BT_DEBUGFS=y
CONFIG_BT_INTEL=m
CONFIG_BT_BCM=m
CONFIG_BT_RTL=m
CONFIG_BT_QCA=m
CONFIG_BT_HCIBTUSB=m
CONFIG_BT_HCIBTUSB_BCM=y
CONFIG_BT_HCIBTUSB_RTL=y
@@ -1469,6 +1485,7 @@ CONFIG_BT_HCIUART_LL=y
CONFIG_BT_HCIUART_3WIRE=y
CONFIG_BT_HCIUART_INTEL=y
CONFIG_BT_HCIUART_BCM=y
CONFIG_BT_HCIUART_QCA=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
@@ -1557,6 +1574,9 @@ CONFIG_NFC_ST21NFCA=m
CONFIG_NFC_ST21NFCA_I2C=m
# CONFIG_NFC_ST_NCI is not set
# CONFIG_NFC_NXP_NCI is not set
CONFIG_NFC_S3FWRN5=m
CONFIG_NFC_S3FWRN5_I2C=m
CONFIG_LWTUNNEL=y
CONFIG_HAVE_BPF_JIT=y
#
@@ -1804,6 +1824,7 @@ CONFIG_GENWQE_PLATFORM_ERROR_RECOVERY=1
# 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_HAVE_IDE=y
# CONFIG_IDE is not set
@@ -2129,6 +2150,7 @@ CONFIG_MACVLAN=m
CONFIG_MACVTAP=m
# CONFIG_IPVLAN is not set
CONFIG_VXLAN=m
CONFIG_GENEVE=m
CONFIG_NETCONSOLE=m
CONFIG_NETCONSOLE_DYNAMIC=y
CONFIG_NETPOLL=y
@@ -2138,6 +2160,7 @@ CONFIG_TUN=m
CONFIG_VETH=m
CONFIG_VIRTIO_NET=m
# CONFIG_NLMON is not set
CONFIG_NET_VRF=m
CONFIG_SUNGEM_PHY=m
# CONFIG_ARCNET is not set
CONFIG_ATM_DRIVERS=y
@@ -2214,6 +2237,7 @@ CONFIG_CNIC=m
CONFIG_TIGON3=m
CONFIG_BNX2X=m
CONFIG_BNX2X_SRIOV=y
CONFIG_BNX2X_VXLAN=y
CONFIG_NET_VENDOR_BROCADE=y
CONFIG_BNA=m
CONFIG_NET_VENDOR_CAVIUM=y
@@ -2299,6 +2323,8 @@ CONFIG_MLX4_EN_VXLAN=y
CONFIG_MLX4_CORE=m
CONFIG_MLX4_DEBUG=y
# CONFIG_MLX5_CORE is not set
CONFIG_MLXSW_CORE=m
CONFIG_MLXSW_PCI=m
CONFIG_NET_VENDOR_MICREL=y
# CONFIG_KS8842 is not set
# CONFIG_KS8851_MLL is not set
@@ -2372,6 +2398,7 @@ CONFIG_HAPPYMEAL=m
CONFIG_SUNGEM=m
CONFIG_CASSINI=m
CONFIG_NIU=m
CONFIG_NET_VENDOR_SYNOPSYS=y
CONFIG_NET_VENDOR_TEHUTI=y
CONFIG_TEHUTI=m
CONFIG_NET_VENDOR_TI=y
@@ -2397,6 +2424,7 @@ CONFIG_PHYLIB=y
#
# MII PHY device drivers
#
CONFIG_AQUANTIA_PHY=m
CONFIG_AT803X_PHY=m
CONFIG_AMD_PHY=m
CONFIG_MARVELL_PHY=m
@@ -2405,6 +2433,7 @@ 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_BROADCOM_PHY=m
CONFIG_BCM7XXX_PHY=m
@@ -2415,10 +2444,13 @@ CONFIG_NATIONAL_PHY=m
CONFIG_STE10XP=m
CONFIG_LSI_ET1011C_PHY=m
CONFIG_MICREL_PHY=m
CONFIG_DP83848_PHY=m
# CONFIG_DP83867_PHY is not set
CONFIG_MICROCHIP_PHY=m
CONFIG_FIXED_PHY=y
CONFIG_MDIO_BITBANG=m
CONFIG_MDIO_GPIO=m
CONFIG_MDIO_OCTEON=m
# CONFIG_MDIO_BCM_UNIMAC is not set
# CONFIG_PLIP is not set
CONFIG_PPP=m
@@ -2444,6 +2476,7 @@ CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
CONFIG_USB_RTL8150=m
CONFIG_USB_RTL8152=m
CONFIG_USB_LAN78XX=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_AX88179_178A=m
@@ -2478,6 +2511,7 @@ CONFIG_USB_NET_INT51X1=m
CONFIG_USB_IPHETH=m
CONFIG_USB_SIERRA_NET=m
CONFIG_USB_VL600=m
CONFIG_USB_NET_CH9200=m
CONFIG_WLAN=y
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_LIBERTAS_THINFIRM is not set
@@ -2699,6 +2733,7 @@ CONFIG_IEEE802154_FAKELB=m
CONFIG_XEN_NETDEV_FRONTEND=m
CONFIG_XEN_NETDEV_BACKEND=m
CONFIG_VMXNET3=m
CONFIG_FUJITSU_ES=m
CONFIG_HYPERV_NET=m
CONFIG_ISDN=y
CONFIG_ISDN_I4L=m
@@ -2940,6 +2975,7 @@ CONFIG_TABLET_USB_HANWANG=m
CONFIG_TABLET_USB_KBTAB=m
CONFIG_TABLET_SERIAL_WACOM4=m
CONFIG_INPUT_TOUCHSCREEN=y
CONFIG_TOUCHSCREEN_PROPERTIES=y
CONFIG_TOUCHSCREEN_AD7879=m
CONFIG_TOUCHSCREEN_AD7879_I2C=m
CONFIG_TOUCHSCREEN_ATMEL_MXT=m
@@ -3118,6 +3154,7 @@ CONFIG_SERIAL_8250_DW=m
#
# Non-8250 serial port support
#
CONFIG_SERIAL_UARTLITE=m
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
CONFIG_SERIAL_JSM=m
@@ -3207,6 +3244,7 @@ CONFIG_I2C_MUX_GPIO=m
CONFIG_I2C_MUX_PCA9541=m
CONFIG_I2C_MUX_PCA954x=m
CONFIG_I2C_MUX_PINCTRL=m
CONFIG_I2C_MUX_REG=m
CONFIG_I2C_HELPER_AUTO=y
CONFIG_I2C_SMBUS=m
CONFIG_I2C_ALGOBIT=m
@@ -3249,6 +3287,7 @@ CONFIG_I2C_CBUS_GPIO=m
CONFIG_I2C_DESIGNWARE_CORE=m
CONFIG_I2C_DESIGNWARE_PLATFORM=m
# CONFIG_I2C_DESIGNWARE_PCI is not set
CONFIG_I2C_EMEV2=m
CONFIG_I2C_GPIO=m
# CONFIG_I2C_OCORES is not set
CONFIG_I2C_PCA_PLATFORM=m
@@ -3519,6 +3558,7 @@ CONFIG_SENSORS_ADM1275=m
CONFIG_SENSORS_LM25066=m
CONFIG_SENSORS_LTC2978=m
CONFIG_SENSORS_MAX16064=m
CONFIG_SENSORS_MAX20751=m
CONFIG_SENSORS_MAX34440=m
CONFIG_SENSORS_MAX8688=m
CONFIG_SENSORS_TPS40422=m
@@ -3590,10 +3630,7 @@ CONFIG_X86_PKG_TEMP_THERMAL=m
CONFIG_INTEL_SOC_DTS_IOSF_CORE=m
CONFIG_INTEL_SOC_DTS_THERMAL=m
# CONFIG_INT340X_THERMAL is not set
#
# Texas Instruments thermal drivers
#
CONFIG_INTEL_PCH_THERMAL=m
CONFIG_WATCHDOG=y
CONFIG_WATCHDOG_CORE=y
# CONFIG_WATCHDOG_NOWAYOUT is not set
@@ -3699,6 +3736,9 @@ CONFIG_MFD_CROS_EC_I2C=m
CONFIG_MFD_INTEL_QUARK_I2C_GPIO=m
CONFIG_LPC_ICH=m
CONFIG_LPC_SCH=m
CONFIG_MFD_INTEL_LPSS=m
CONFIG_MFD_INTEL_LPSS_ACPI=m
CONFIG_MFD_INTEL_LPSS_PCI=m
# CONFIG_MFD_JANZ_CMODIO is not set
# CONFIG_MFD_KEMPLD is not set
CONFIG_MFD_MT6397=m
@@ -3966,13 +4006,8 @@ CONFIG_MEDIA_PCI_SUPPORT=y
# Media capture support
#
CONFIG_VIDEO_MEYE=m
#
# Media capture/analog TV support
#
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_IVTV_ALSA=m
CONFIG_VIDEO_FB_IVTV=m
CONFIG_VIDEO_SOLO6X10=m
# CONFIG_VIDEO_TW68 is not set
CONFIG_VIDEO_ZORAN=m
CONFIG_VIDEO_ZORAN_DC30=m
CONFIG_VIDEO_ZORAN_ZR36060=m
@@ -3981,11 +4016,16 @@ CONFIG_VIDEO_ZORAN_DC10=m
CONFIG_VIDEO_ZORAN_LML33=m
CONFIG_VIDEO_ZORAN_LML33R10=m
CONFIG_VIDEO_ZORAN_AVS6EYES=m
#
# Media capture/analog TV support
#
CONFIG_VIDEO_IVTV=m
CONFIG_VIDEO_IVTV_ALSA=m
CONFIG_VIDEO_FB_IVTV=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_MXB=m
CONFIG_VIDEO_SOLO6X10=m
# CONFIG_VIDEO_TW68 is not set
# CONFIG_VIDEO_DT3155 is not set
#
@@ -4041,6 +4081,7 @@ CONFIG_VIDEO_SH_VEU=m
CONFIG_V4L_TEST_DRIVERS=y
# CONFIG_VIDEO_VIVID is not set
# CONFIG_VIDEO_VIM2M is not set
CONFIG_DVB_PLATFORM_DRIVERS=y
#
# Supported MMC/SDIO adapters
@@ -4360,14 +4401,11 @@ CONFIG_INTEL_GTT=y
CONFIG_VGA_ARB=y
CONFIG_VGA_ARB_MAX_GPUS=16
CONFIG_VGA_SWITCHEROO=y
#
# Direct Rendering Manager
#
CONFIG_DRM=m
CONFIG_DRM_MIPI_DSI=y
CONFIG_DRM_KMS_HELPER=m
CONFIG_DRM_KMS_FB_HELPER=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_DRM_LOAD_EDID_FIRMWARE=y
CONFIG_DRM_TTM=m
@@ -4390,8 +4428,6 @@ CONFIG_NOUVEAU_DEBUG_DEFAULT=3
CONFIG_DRM_NOUVEAU_BACKLIGHT=y
CONFIG_DRM_I810=m
CONFIG_DRM_I915=m
CONFIG_DRM_I915_KMS=y
CONFIG_DRM_I915_FBDEV=y
CONFIG_DRM_I915_PRELIMINARY_HW_SUPPORT=y
CONFIG_DRM_MACH64=m
CONFIG_DRM_MGA=m
@@ -4416,6 +4452,11 @@ CONFIG_DRM_PANEL=y
#
# Display Panels
#
CONFIG_DRM_BRIDGE=y
#
# Display Interface Bridges
#
# CONFIG_HSA_AMD is not set
#
@@ -4494,6 +4535,7 @@ CONFIG_XEN_FBDEV_FRONTEND=y
# CONFIG_FB_AUO_K190X is not set
CONFIG_FB_HYPERV=m
# CONFIG_FB_SIMPLE is not set
CONFIG_FB_SM712=m
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_LCD_CLASS_DEVICE=m
CONFIG_LCD_PLATFORM=m
@@ -4501,6 +4543,7 @@ CONFIG_BACKLIGHT_CLASS_DEVICE=y
# CONFIG_BACKLIGHT_GENERIC is not set
CONFIG_BACKLIGHT_PWM=m
CONFIG_BACKLIGHT_APPLE=m
CONFIG_BACKLIGHT_PM8941_WLED=m
# CONFIG_BACKLIGHT_SAHARA is not set
# CONFIG_BACKLIGHT_ADP8860 is not set
# CONFIG_BACKLIGHT_ADP8870 is not set
@@ -4736,6 +4779,7 @@ CONFIG_HID_EMS_FF=m
CONFIG_HID_ELECOM=m
CONFIG_HID_ELO=m
CONFIG_HID_EZKEY=y
CONFIG_HID_GEMBIRD=m
CONFIG_HID_HOLTEK=m
CONFIG_HOLTEK_FF=y
CONFIG_HID_GT683R=m
@@ -4912,6 +4956,10 @@ CONFIG_USB_MUSB_HOST=y
#
# Platform Glue Layer
#
#
# MUSB DMA mode
#
CONFIG_MUSB_PIO_ONLY=y
CONFIG_USB_DWC3=m
CONFIG_USB_DWC3_HOST=y
@@ -4920,11 +4968,6 @@ CONFIG_USB_DWC3_HOST=y
# Platform Glue Driver Support
#
CONFIG_USB_DWC3_PCI=m
#
# Debugging features
#
# CONFIG_USB_DWC3_DEBUG is not set
CONFIG_USB_DWC2=y
CONFIG_USB_DWC2_HOST=y
@@ -5133,7 +5176,6 @@ CONFIG_LEDS_LM355x=m
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)
#
CONFIG_LEDS_BLINKM=m
CONFIG_LEDS_PM8941_WLED=m
#
# LED Triggers
@@ -5162,11 +5204,8 @@ CONFIG_INFINIBAND_ON_DEMAND_PAGING=y
CONFIG_INFINIBAND_ADDR_TRANS=y
CONFIG_INFINIBAND_MTHCA=m
CONFIG_INFINIBAND_MTHCA_DEBUG=y
CONFIG_INFINIBAND_IPATH=m
CONFIG_INFINIBAND_QIB=m
CONFIG_INFINIBAND_QIB_DCA=y
CONFIG_INFINIBAND_AMSO1100=m
# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
CONFIG_INFINIBAND_CXGB3=m
# CONFIG_INFINIBAND_CXGB3_DEBUG is not set
CONFIG_INFINIBAND_CXGB4=m
@@ -5189,7 +5228,6 @@ CONFIG_EDAC=y
CONFIG_EDAC_LEGACY_SYSFS=y
# CONFIG_EDAC_DEBUG is not set
CONFIG_EDAC_DECODE_MCE=m
CONFIG_EDAC_MCE_INJ=m
CONFIG_EDAC_MM_EDAC=m
CONFIG_EDAC_AMD64=m
# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set
@@ -5298,15 +5336,16 @@ CONFIG_DMADEVICES=y
#
# DMA Devices
#
CONFIG_INTEL_MIC_X100_DMA=m
CONFIG_DMA_ENGINE=y
CONFIG_DMA_VIRTUAL_CHANNELS=m
CONFIG_DMA_ACPI=y
CONFIG_IDMA64=m
CONFIG_INTEL_IOATDMA=m
CONFIG_INTEL_MIC_X100_DMA=m
# CONFIG_DW_DMAC is not set
# CONFIG_DW_DMAC_PCI is not set
CONFIG_HSU_DMA=m
CONFIG_HSU_DMA_PCI=m
CONFIG_DMA_ENGINE=y
CONFIG_DMA_VIRTUAL_CHANNELS=m
CONFIG_DMA_ACPI=y
#
# DMA Clients
@@ -5384,6 +5423,8 @@ CONFIG_XEN_HAVE_PVMMU=y
CONFIG_XEN_EFI=y
CONFIG_XEN_AUTO_XLATE=y
CONFIG_XEN_ACPI=y
CONFIG_XEN_SYMS=y
CONFIG_XEN_HAVE_VPMU=y
CONFIG_STAGING=y
# CONFIG_SLICOSS is not set
# CONFIG_PRISM2_USB is not set
@@ -5400,7 +5441,6 @@ CONFIG_8723AU_BT_COEXIST=y
CONFIG_RTS5208=m
# CONFIG_VT6655 is not set
# CONFIG_VT6656 is not set
CONFIG_FB_SM7XX=m
CONFIG_FB_SM750=m
# CONFIG_FB_XGI is not set
# CONFIG_FT1000 is not set
@@ -5424,6 +5464,15 @@ CONFIG_LIRC_SERIAL=m
CONFIG_LIRC_SERIAL_TRANSMITTER=y
CONFIG_LIRC_SIR=m
CONFIG_LIRC_ZILOG=m
CONFIG_STAGING_RDMA=y
CONFIG_INFINIBAND_AMSO1100=m
# CONFIG_INFINIBAND_AMSO1100_DEBUG is not set
CONFIG_INFINIBAND_HFI1=m
CONFIG_HFI1_DEBUG_SDMA_ORDER=y
CONFIG_HFI1_VERBS_31BIT_PSN=y
CONFIG_SDMA_VERBOSITY=y
CONFIG_PRESCAN_RXQ=y
CONFIG_INFINIBAND_IPATH=m
#
# Android
@@ -5436,7 +5485,6 @@ CONFIG_SYNC=y
CONFIG_SW_SYNC=y
CONFIG_SW_SYNC_USER=y
# CONFIG_ION is not set
CONFIG_USB_WPAN_HCD=m
CONFIG_WIMAX_GDM72XX=m
CONFIG_WIMAX_GDM72XX_QOS=y
CONFIG_WIMAX_GDM72XX_K_MODE=y
@@ -5455,6 +5503,15 @@ CONFIG_DGAP=m
# CONFIG_CRYPTO_SKEIN is not set
CONFIG_UNISYSSPAR=y
# CONFIG_UNISYS_VISORBUS is not set
CONFIG_MOST=m
CONFIG_MOSTCORE=m
CONFIG_AIM_CDEV=m
CONFIG_AIM_NETWORK=m
CONFIG_AIM_SOUND=m
CONFIG_AIM_V4L2=m
CONFIG_HDM_DIM2=m
CONFIG_HDM_I2C=m
CONFIG_HDM_USB=m
CONFIG_X86_PLATFORM_DEVICES=y
CONFIG_ACER_WMI=m
CONFIG_ACERHDF=m
@@ -5510,6 +5567,7 @@ CONFIG_INTEL_RST=m
CONFIG_SHUTTLE_WMI=m
CONFIG_PVPANIC=m
# CONFIG_INTEL_PMC_IPC is not set
CONFIG_SURFACE_PRO3_BUTTON=m
CONFIG_CHROME_PLATFORMS=y
CONFIG_CHROMEOS_LAPTOP=m
CONFIG_CHROMEOS_PSTORE=m
@@ -5624,7 +5682,12 @@ CONFIG_PHY_SAMSUNG_USB2=m
CONFIG_POWERCAP=y
CONFIG_INTEL_RAPL=m
# CONFIG_MCB is not set
#
# Performance monitor support
#
CONFIG_RAS=y
CONFIG_AMD_MCE_INJ=m
CONFIG_THUNDERBOLT=m
#
@@ -5633,6 +5696,7 @@ CONFIG_THUNDERBOLT=m
CONFIG_ANDROID=y
CONFIG_ANDROID_BINDER_IPC=y
# CONFIG_LIBNVDIMM is not set
CONFIG_NVMEM=m
#
# Firmware Drivers
@@ -5675,8 +5739,6 @@ CONFIG_EXT2_FS_XATTR=y
# CONFIG_EXT2_FS_POSIX_ACL is not set
CONFIG_EXT2_FS_SECURITY=y
CONFIG_EXT3_FS=m
CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
CONFIG_EXT3_FS_XATTR=y
# CONFIG_EXT3_FS_POSIX_ACL is not set
CONFIG_EXT3_FS_SECURITY=y
CONFIG_EXT4_FS=y
@@ -5685,8 +5747,6 @@ CONFIG_EXT4_FS_SECURITY=y
CONFIG_EXT4_ENCRYPTION=m
CONFIG_EXT4_FS_ENCRYPTION=y
# CONFIG_EXT4_DEBUG is not set
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_JBD2=y
# CONFIG_JBD2_DEBUG is not set
CONFIG_FS_MBCACHE=y
@@ -6128,6 +6188,7 @@ CONFIG_TEST_KSTRTOX=y
# CONFIG_TEST_FIRMWARE is not set
# CONFIG_TEST_UDELAY is not set
# CONFIG_MEMTEST is not set
CONFIG_TEST_STATIC_KEYS=m
# CONFIG_SAMPLES is not set
CONFIG_HAVE_ARCH_KGDB=y
CONFIG_STRICT_DEVMEM=y
@@ -6212,6 +6273,7 @@ CONFIG_CRYPTO_RNG_DEFAULT=y
CONFIG_CRYPTO_PCOMP=m
CONFIG_CRYPTO_PCOMP2=y
CONFIG_CRYPTO_AKCIPHER2=y
CONFIG_CRYPTO_AKCIPHER=m
# CONFIG_CRYPTO_RSA is not set
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_MANAGER2=y
@@ -6219,6 +6281,7 @@ CONFIG_CRYPTO_USER=m
# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
CONFIG_CRYPTO_GF128MUL=y
CONFIG_CRYPTO_NULL=y
CONFIG_CRYPTO_NULL2=y
CONFIG_CRYPTO_PCRYPT=m
CONFIG_CRYPTO_WORKQUEUE=y
CONFIG_CRYPTO_CRYPTD=y
@@ -6266,7 +6329,8 @@ CONFIG_CRYPTO_CRC32_PCLMUL=m
CONFIG_CRYPTO_CRCT10DIF=y
# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set
CONFIG_CRYPTO_GHASH=m
# CONFIG_CRYPTO_POLY1305 is not set
CONFIG_CRYPTO_POLY1305=m
CONFIG_CRYPTO_POLY1305_X86_64=m
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_MICHAEL_MIC=m
@@ -6311,7 +6375,8 @@ CONFIG_CRYPTO_FCRYPT=m
CONFIG_CRYPTO_KHAZAD=m
CONFIG_CRYPTO_SALSA20=m
CONFIG_CRYPTO_SALSA20_X86_64=m
# CONFIG_CRYPTO_CHACHA20 is not set
CONFIG_CRYPTO_CHACHA20=m
CONFIG_CRYPTO_CHACHA20_X86_64=m
CONFIG_CRYPTO_SEED=m
CONFIG_CRYPTO_SERPENT=m
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
@@ -6359,11 +6424,17 @@ CONFIG_CRYPTO_DEV_CCP_DD=m
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
CONFIG_CRYPTO_DEV_QAT=m
CONFIG_CRYPTO_DEV_QAT_DH895xCC=m
CONFIG_CRYPTO_DEV_QAT_DH895xCCVF=m
CONFIG_ASYMMETRIC_KEY_TYPE=m
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=m
CONFIG_PUBLIC_KEY_ALGO_RSA=m
CONFIG_X509_CERTIFICATE_PARSER=m
# CONFIG_PKCS7_MESSAGE_PARSER is not set
#
# Certificates for signature checking
#
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
CONFIG_HAVE_KVM=y
CONFIG_HAVE_KVM_IRQCHIP=y
CONFIG_HAVE_KVM_IRQFD=y
@@ -6399,7 +6470,6 @@ CONFIG_GENERIC_FIND_FIRST_BIT=y
CONFIG_GENERIC_PCI_IOMAP=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_IO=y
CONFIG_PERCPU_RWSEM=y
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y
CONFIG_ARCH_HAS_FAST_MULTIPLIER=y
CONFIG_CRC_CCITT=m
@@ -6461,7 +6531,6 @@ CONFIG_GLOB=y
CONFIG_NLATTR=y
CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y
CONFIG_LRU_CACHE=m
CONFIG_AVERAGE=y
CONFIG_CLZ_TAB=y
CONFIG_CORDIC=m
# CONFIG_DDR is not set
@@ -6472,14 +6541,15 @@ CONFIG_FONT_SUPPORT=y
# CONFIG_FONTS is not set
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
# CONFIG_SG_SPLIT is not set
CONFIG_ARCH_HAS_SG_CHAIN=y
CONFIG_ARCH_HAS_PMEM_API=y
CONFIG_ARCH_HAS_MMIO_FLUSH=y
#
# Unofficial 3rd party kernel additions
#
CONFIG_NDISWRAPPER=m
CONFIG_RTL8723AS=m
CONFIG_RTL8723BS=m
CONFIG_WLAN_SDIO=y
CONFIG_VIAHSS=m
@@ -1,138 +0,0 @@
From:
https://github.com/lwfinger/rtl8723bs/commit/49fcb39bc7dc0b7ae61463d493c0b630dc6a27ca
From 49fcb39bc7dc0b7ae61463d493c0b630dc6a27ca Mon Sep 17 00:00:00 2001
From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Sat, 15 Aug 2015 10:51:20 -0500
Subject: [PATCH] rtl8723bs: Fix builds on kernel 4.2
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
[adapted to mga kernel / tmb]
Signed-off-by: Thomas Backlund <tmb@mageia.org>
---
hal/hal_com_phycfg.c | 38 +++++++++++++++++++-------------------
os_dep/ioctl_cfg80211.c | 5 +++++
2 files changed, 24 insertions(+), 19 deletions(-)
3rdparty/rtl8723bs/hal/hal_com_phycfg.c | 38 ++++++++++++++---------------
3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c | 5 +++
2 files changed, 24 insertions(+), 19 deletions(-)
diff -Nurp linux/3rdparty/rtl8723bs.orig/hal/hal_com_phycfg.c linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c
--- linux/3rdparty/rtl8723bs.orig/hal/hal_com_phycfg.c 2015-09-30 00:51:13.000000000 +0300
+++ linux/3rdparty/rtl8723bs/hal/hal_com_phycfg.c 2015-09-30 01:49:37.475440016 +0300
@@ -2254,7 +2254,7 @@ Hal_ChannelPlanToRegulation(
#ifdef CONFIG_LOAD_PHY_PARA_FROM_FILE
extern char *rtw_phy_file_path;
-static char file_path[PATH_MAX];
+static char rtl_file_path[PATH_MAX];
#define GetLineFromBuffer(buffer) strsep(&buffer, "\n")
@@ -2276,11 +2276,11 @@ phy_ConfigMACWithParaFile(
if ((pHalData->mac_reg_len == 0) && (pHalData->mac_reg == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -2375,11 +2375,11 @@ phy_ConfigBBWithParaFile(
if ((pBufLen != NULL) && (*pBufLen == 0) && (pBuf == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -2824,11 +2824,11 @@ phy_ConfigBBWithPgParaFile(
if ((pHalData->bb_phy_reg_pg_len == 0) && (pHalData->bb_phy_reg_pg == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -2904,11 +2904,11 @@ PHY_ConfigRFWithParaFile(
if ((pBufLen != NULL) && (*pBufLen == 0) && (pBuf == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -3178,11 +3178,11 @@ PHY_ConfigRFWithTxPwrTrackParaFile(
if ((pHalData->rf_tx_pwr_track_len == 0) && (pHalData->rf_tx_pwr_track == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
@@ -3527,11 +3527,11 @@ PHY_ConfigRFWithPowerLimitTableParaFile(
if ((pHalData->rf_tx_pwr_lmt_len == 0) && (pHalData->rf_tx_pwr_lmt == NULL))
{
- rtw_merge_string(file_path, PATH_MAX, rtw_phy_file_path, pFileName);
+ rtw_merge_string(rtl_file_path, PATH_MAX, rtw_phy_file_path, pFileName);
- if (rtw_is_file_readable(file_path) == true)
+ if (rtw_is_file_readable(rtl_file_path) == true)
{
- rlen = rtw_retrive_from_file(file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
+ rlen = rtw_retrive_from_file(rtl_file_path, pHalData->para_file_buf, MAX_PARA_FILE_BUF_LEN);
if (rlen > 0)
{
rtStatus = _SUCCESS;
diff -Nurp linux/3rdparty/rtl8723bs.orig/os_dep/ioctl_cfg80211.c linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c
--- linux/3rdparty/rtl8723bs.orig/os_dep/ioctl_cfg80211.c 2015-09-30 00:51:13.000000000 +0300
+++ linux/3rdparty/rtl8723bs/os_dep/ioctl_cfg80211.c 2015-09-30 01:49:37.476440020 +0300
@@ -587,7 +587,12 @@ void rtw_cfg80211_indicate_disconnect(_a
if (!padapter->mlmepriv.not_indic_disco) {
if(check_fwstate(&padapter->mlmepriv, _FW_LINKED))
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 2, 0))
+ cfg80211_disconnected(padapter->pnetdev, 0,
+ NULL, 0, true, GFP_ATOMIC);
+#else
cfg80211_disconnected(padapter->pnetdev, 0, NULL, 0, GFP_ATOMIC);
+#endif
else
cfg80211_connect_result(padapter->pnetdev, NULL, NULL, 0, NULL, 0,
WLAN_STATUS_UNSPECIFIED_FAILURE, GFP_ATOMIC/*GFP_KERNEL*/);
@@ -1,23 +0,0 @@
From 842e61cb85813b1ed8a1646cbe6739950c0c9822 Mon Sep 17 00:00:00 2001
From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Thu, 7 May 2015 19:08:17 +0000
Subject: [PATCH] rtl8723bs: Fix Makefile to allow warnings
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git linux.old/3rdparty/rtl8723bs/Makefile linux/3rdparty/rtl8723bs/Makefile
index a4d9f45..4da73fa 100644
--- linux.old/3rdparty/rtl8723bs/Makefile
+++ linux/3rdparty/rtl8723bs/Makefile
@@ -3,7 +3,7 @@ EXTRA_CFLAGS += -O1
#EXTRA_CFLAGS += -O3
#EXTRA_CFLAGS += -Wall
#EXTRA_CFLAGS += -Wextra
-EXTRA_CFLAGS += -Werror
+#EXTRA_CFLAGS += -Werror
#EXTRA_CFLAGS += -pedantic
#EXTRA_CFLAGS += -Wshadow -Wpointer-arith -Wcast-qual -Wstrict-prototypes -Wmissing-prototypes
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,40 @@
From 61f9738d65094a6b18d22c7beb6bb8c3dc0606b9 Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Mon, 26 Oct 2015 15:20:46 +0100
Subject: [PATCH] ACPI / video: Add a quirk to force acpi-video backlight on
Dell XPS L421X
Just like the Dell XPS 15 (L521X) the Dell XPS 14 (L421X) needs to use
the acpi-video backlight interface rather then the native one for backlight
control to work, add a quirk for this.
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1272633
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video_detect.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 0d3a384..daaf1c4 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -233,6 +233,15 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
},
},
{
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1272633 */
+ .callback = video_detect_force_video,
+ .ident = "Dell XPS14 L421X",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
+ DMI_MATCH(DMI_PRODUCT_NAME, "XPS L421X"),
+ },
+ },
+ {
/* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
.callback = video_detect_force_video,
.ident = "Dell XPS15 L521X",
--
2.3.10
@@ -0,0 +1,40 @@
From 584d8d1eb123b8be1274bf69f3ce07cee848d40d Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 21 Oct 2015 13:45:03 +0200
Subject: [PATCH] ACPI / video: Add a quirk to force native backlight on Lenovo
IdeaPad S405
The Lenovo IdeaPad S405 is a not "Windows8 ready" machine which still has
a broken ACPI video backlight implementation. Add a quirk to force use
of native backlight on this machine.
Link: https://bugzilla.redhat.com/show_bug.cgi?id=1201530
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video_detect.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
index 2922f1f..0d3a384 100644
--- a/drivers/acpi/video_detect.c
+++ b/drivers/acpi/video_detect.c
@@ -244,6 +244,15 @@ static const struct dmi_system_id video_detect_dmi_table[] = {
/* Non win8 machines which need native backlight nevertheless */
{
+ /* https://bugzilla.redhat.com/show_bug.cgi?id=1201530 */
+ .callback = video_detect_force_native,
+ .ident = "Lenovo Ideapad S405",
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
+ DMI_MATCH(DMI_BOARD_NAME, "Lenovo IdeaPad S405"),
+ },
+ },
+ {
/* https://bugzilla.redhat.com/show_bug.cgi?id=1187004 */
.callback = video_detect_force_native,
.ident = "Lenovo Ideapad Z570",
--
2.3.10
@@ -0,0 +1,51 @@
From fa5c35011a8d5f3d0c597a6336107eafd1b6046c Mon Sep 17 00:00:00 2001
From: Matt Fleming <matt.fleming@intel.com>
Date: Fri, 7 Aug 2015 09:36:56 +0100
Subject: [PATCH] Revert "x86/efi: Request desired alignment via the PE/COFF
headers"
This reverts commit:
aeffc4928ea2 ("x86/efi: Request desired alignment via the PE/COFF headers")
Linn reports that Signtool complains that kernels built with
CONFIG_EFI_STUB=y are violating the PE/COFF specification because
the 'SizeOfImage' field is not a multiple of 'SectionAlignment'.
This violation was introduced as an optimisation to skip having
the kernel relocate itself during boot and instead have the
firmware place it at a correctly aligned address.
No one else has complained and I'm not aware of any firmware
implementations that refuse to boot with commit aeffc4928ea2,
but it's a real bug, so revert the offending commit.
Reported-by: Linn Crosetto <linn@hp.com>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Brown <mbrown@fensystems.co.uk>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1438936621-5215-3-git-send-email-matt@codeblueprint.co.uk
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/boot/header.S | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
index 16ef025..7a6d43a 100644
--- a/arch/x86/boot/header.S
+++ b/arch/x86/boot/header.S
@@ -154,7 +154,7 @@ extra_header_fields:
#else
.quad 0 # ImageBase
#endif
- .long CONFIG_PHYSICAL_ALIGN # SectionAlignment
+ .long 0x20 # SectionAlignment
.long 0x20 # FileAlignment
.word 0 # MajorOperatingSystemVersion
.word 0 # MinorOperatingSystemVersion
--
2.3.10
@@ -0,0 +1,70 @@
From ca45663819accf038291dbe2d67ed66dc48d714c Mon Sep 17 00:00:00 2001
From: Thomas Backlund <tmb@mageia.org>
Date: Sun, 29 Nov 2015 14:44:22 +0200
Subject: [PATCH] Revert "x86/mm/mtrr: Remove kernel internal MTRR interfaces:
unexport mtrr_add() and mtrr_del()"
This reverts commit 2baa891e42d84159b693eadd44f6fe1486285bdc.
It currently breaks nvidia304 driver.
Signed-of-by: Thomas Backlund <tmb@mageia.org>
---
Documentation/x86/mtrr.txt | 20 ++++----------------
arch/x86/kernel/cpu/mtrr/main.c | 2 ++
2 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/Documentation/x86/mtrr.txt b/Documentation/x86/mtrr.txt
index dc3e703..860bc3a 100644
--- a/Documentation/x86/mtrr.txt
+++ b/Documentation/x86/mtrr.txt
@@ -6,22 +6,10 @@ Luis R. Rodriguez <mcgrof@do-not-panic.com> - April 9, 2015
===============================================================================
Phasing out MTRR use
-MTRR use is replaced on modern x86 hardware with PAT. Direct MTRR use by
-drivers on Linux is now completely phased out, device drivers should use
-arch_phys_wc_add() in combination with ioremap_wc() to make MTRR effective on
-non-PAT systems while a no-op but equally effective on PAT enabled systems.
-
-Even if Linux does not use MTRRs directly, some x86 platform firmware may still
-set up MTRRs early before booting the OS. They do this as some platform
-firmware may still have implemented access to MTRRs which would be controlled
-and handled by the platform firmware directly. An example of platform use of
-MTRRs is through the use of SMI handlers, one case could be for fan control,
-the platform code would need uncachable access to some of its fan control
-registers. Such platform access does not need any Operating System MTRR code in
-place other than mtrr_type_lookup() to ensure any OS specific mapping requests
-are aligned with platform MTRR setup. If MTRRs are only set up by the platform
-firmware code though and the OS does not make any specific MTRR mapping
-requests mtrr_type_lookup() should always return MTRR_TYPE_INVALID.
+MTRR use is replaced on modern x86 hardware with PAT. Over time the only type
+of effective MTRR that is expected to be supported will be for write-combining.
+As MTRR use is phased out device drivers should use arch_phys_wc_add() to make
+MTRR effective on non-PAT systems while a no-op on PAT enabled systems.
For details refer to Documentation/x86/pat.txt.
diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
index f891b47..e7ed0d8 100644
--- a/arch/x86/kernel/cpu/mtrr/main.c
+++ b/arch/x86/kernel/cpu/mtrr/main.c
@@ -448,6 +448,7 @@ int mtrr_add(unsigned long base, unsigned long size, unsigned int type,
return mtrr_add_page(base >> PAGE_SHIFT, size >> PAGE_SHIFT, type,
increment);
}
+EXPORT_SYMBOL(mtrr_add);
/**
* mtrr_del_page - delete a memory type region
@@ -536,6 +537,7 @@ int mtrr_del(int reg, unsigned long base, unsigned long size)
return -EINVAL;
return mtrr_del_page(reg, base >> PAGE_SHIFT, size >> PAGE_SHIFT);
}
+EXPORT_SYMBOL(mtrr_del);
/**
* arch_phys_wc_add - add a WC MTRR and handle errors if PAT is unavailable
--
2.3.10
@@ -0,0 +1,29 @@
From a40cf3f38881ce8543ceb9667150b4f2ead4c437 Mon Sep 17 00:00:00 2001
From: Johannes Thumshirn <jthumshirn@suse.de>
Date: Tue, 20 Oct 2015 09:31:22 +0200
Subject: [PATCH] ahci: Add Marvell 88se91a2 device id
Add device id for Marvell 88se91a2
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Tejun Heo <tj@kernel.org>
---
drivers/ata/ahci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index a466602..ff343c4 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -489,6 +489,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
.driver_data = board_ahci_yes_fbs }, /* 88se9172 on some Gigabyte */
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a0),
.driver_data = board_ahci_yes_fbs },
+ { PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a2), /* 88se91a2 */
+ .driver_data = board_ahci_yes_fbs },
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x91a3),
.driver_data = board_ahci_yes_fbs },
{ PCI_DEVICE(PCI_VENDOR_ID_MARVELL_EXT, 0x9230),
--
2.3.10
@@ -0,0 +1,37 @@
From 56e74338a535cbcc2f2da08b1ea1a92920194364 Mon Sep 17 00:00:00 2001
From: Alexandra Yates <alexandra.yates@linux.intel.com>
Date: Tue, 3 Nov 2015 14:14:18 -0800
Subject: [PATCH] ahci: add new Intel device IDs
Adding Intel codename Lewisburg platform device IDs for SATA.
Signed-off-by: Alexandra Yates <alexandra.yates@linux.intel.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
---
drivers/ata/ahci.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
index ff343c4..ff02bb4 100644
--- a/drivers/ata/ahci.c
+++ b/drivers/ata/ahci.c
@@ -314,6 +314,16 @@ static const struct pci_device_id ahci_pci_tbl[] = {
{ PCI_VDEVICE(INTEL, 0x1f37), board_ahci_avn }, /* Avoton RAID */
{ PCI_VDEVICE(INTEL, 0x1f3e), board_ahci_avn }, /* Avoton RAID */
{ PCI_VDEVICE(INTEL, 0x1f3f), board_ahci_avn }, /* Avoton RAID */
+ { PCI_VDEVICE(INTEL, 0xa182), board_ahci }, /* Lewisburg AHCI*/
+ { PCI_VDEVICE(INTEL, 0xa202), board_ahci }, /* Lewisburg AHCI*/
+ { PCI_VDEVICE(INTEL, 0xa184), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa204), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa186), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa206), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0x2822), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0x2826), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa18e), board_ahci }, /* Lewisburg RAID*/
+ { PCI_VDEVICE(INTEL, 0xa20e), board_ahci }, /* Lewisburg RAID*/
{ PCI_VDEVICE(INTEL, 0x2823), board_ahci }, /* Wellsburg RAID */
{ PCI_VDEVICE(INTEL, 0x2827), board_ahci }, /* Wellsburg RAID */
{ PCI_VDEVICE(INTEL, 0x8d02), board_ahci }, /* Wellsburg AHCI */
--
2.3.10
@@ -2,7 +2,7 @@
fs/aufs/Kconfig | 2 +-
fs/dcache.c | 1 +
fs/file_table.c | 2 ++
fs/inode.c | 2 ++
fs/inode.c | 1 +
fs/namespace.c | 2 ++
fs/notify/group.c | 4 ++++
fs/notify/mark.c | 4 ++++
@@ -12,11 +12,11 @@
security/commoncap.c | 2 ++
security/device_cgroup.c | 2 ++
security/security.c | 10 ++++++++++
13 files changed, 36 insertions(+), 1 deletion(-)
13 files changed, 35 insertions(+), 1 deletion(-)
diff -Nurp linux-4.2.2-aufs4/fs/aufs/Kconfig linux-4.2.2-aufs4-mod/fs/aufs/Kconfig
--- linux-4.2.2-aufs4/fs/aufs/Kconfig 2015-09-29 23:28:44.631823736 +0300
+++ linux-4.2.2-aufs4-mod/fs/aufs/Kconfig 2015-09-29 23:48:32.711006787 +0300
diff -Nurp linux-4.3.aufs/fs/aufs/Kconfig linux-4.3.aufs.mod/fs/aufs/Kconfig
--- linux-4.3.aufs/fs/aufs/Kconfig 2015-11-19 22:31:36.517207700 +0200
+++ linux-4.3.aufs.mod/fs/aufs/Kconfig 2015-11-19 22:32:42.497511385 +0200
@@ -1,5 +1,5 @@
config AUFS_FS
- bool "Aufs (Advanced multi layered unification filesystem) support"
@@ -24,9 +24,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/aufs/Kconfig linux-4.2.2-aufs4-mod/fs/aufs/Kconf
help
Aufs is a stackable unification filesystem such as Unionfs,
which unifies several directories and provides a merged single
diff -Nurp linux-4.2.2-aufs4/fs/dcache.c linux-4.2.2-aufs4-mod/fs/dcache.c
--- linux-4.2.2-aufs4/fs/dcache.c 2015-09-29 23:28:44.644823810 +0300
+++ linux-4.2.2-aufs4-mod/fs/dcache.c 2015-09-29 23:48:32.711006787 +0300
diff -Nurp linux-4.3.aufs/fs/dcache.c linux-4.3.aufs.mod/fs/dcache.c
--- linux-4.3.aufs/fs/dcache.c 2015-11-19 22:31:36.529207756 +0200
+++ linux-4.3.aufs.mod/fs/dcache.c 2015-11-19 22:32:42.497511385 +0200
@@ -1272,6 +1272,7 @@ rename_retry:
seq = 1;
goto again;
@@ -35,9 +35,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/dcache.c linux-4.2.2-aufs4-mod/fs/dcache.c
/*
* Search for at least 1 mount point in the dentry's subdirs.
diff -Nurp linux-4.2.2-aufs4/fs/file_table.c linux-4.2.2-aufs4-mod/fs/file_table.c
--- linux-4.2.2-aufs4/fs/file_table.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/file_table.c 2015-09-29 23:48:32.711006787 +0300
diff -Nurp linux-4.3.aufs/fs/file_table.c linux-4.3.aufs.mod/fs/file_table.c
--- linux-4.3.aufs/fs/file_table.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/fs/file_table.c 2015-11-19 22:32:42.497511385 +0200
@@ -147,6 +147,7 @@ over:
}
return ERR_PTR(-ENFILE);
@@ -54,18 +54,10 @@ diff -Nurp linux-4.2.2-aufs4/fs/file_table.c linux-4.2.2-aufs4-mod/fs/file_table
void __init files_init(void)
{
diff -Nurp linux-4.2.2-aufs4/fs/inode.c linux-4.2.2-aufs4-mod/fs/inode.c
--- linux-4.2.2-aufs4/fs/inode.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/inode.c 2015-09-29 23:48:32.712006792 +0300
@@ -58,6 +58,7 @@ static struct hlist_head *inode_hashtabl
static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock);
__cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock);
+EXPORT_SYMBOL(inode_sb_list_lock);
/*
* Empty aops. Can be used for the cases where the user does not
@@ -1581,6 +1582,7 @@ static int update_time(struct inode *ino
diff -Nurp linux-4.3.aufs/fs/inode.c linux-4.3.aufs.mod/fs/inode.c
--- linux-4.3.aufs/fs/inode.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/fs/inode.c 2015-11-19 22:32:42.498511390 +0200
@@ -1593,6 +1593,7 @@ static int update_time(struct inode *ino
return update_time(inode, time, flags);
}
@@ -73,9 +65,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/inode.c linux-4.2.2-aufs4-mod/fs/inode.c
/**
* touch_atime - update the access time
diff -Nurp linux-4.2.2-aufs4/fs/namespace.c linux-4.2.2-aufs4-mod/fs/namespace.c
--- linux-4.2.2-aufs4/fs/namespace.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/namespace.c 2015-09-29 23:48:32.712006792 +0300
diff -Nurp linux-4.3.aufs/fs/namespace.c linux-4.3.aufs.mod/fs/namespace.c
--- linux-4.3.aufs/fs/namespace.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/fs/namespace.c 2015-11-19 22:32:42.499511394 +0200
@@ -463,6 +463,7 @@ void __mnt_drop_write(struct vfsmount *m
mnt_dec_writers(real_mount(mnt));
preempt_enable();
@@ -92,9 +84,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/namespace.c linux-4.2.2-aufs4-mod/fs/namespace.c
static void cleanup_group_ids(struct mount *mnt, struct mount *end)
{
diff -Nurp linux-4.2.2-aufs4/fs/notify/group.c linux-4.2.2-aufs4-mod/fs/notify/group.c
--- linux-4.2.2-aufs4/fs/notify/group.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/notify/group.c 2015-09-29 23:48:32.712006792 +0300
diff -Nurp linux-4.3.aufs/fs/notify/group.c linux-4.3.aufs.mod/fs/notify/group.c
--- linux-4.3.aufs/fs/notify/group.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/fs/notify/group.c 2015-11-19 22:32:42.500511399 +0200
@@ -22,6 +22,7 @@
#include <linux/srcu.h>
#include <linux/rculist.h>
@@ -127,9 +119,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/notify/group.c linux-4.2.2-aufs4-mod/fs/notify/g
int fsnotify_fasync(int fd, struct file *file, int on)
{
diff -Nurp linux-4.2.2-aufs4/fs/notify/mark.c linux-4.2.2-aufs4-mod/fs/notify/mark.c
--- linux-4.2.2-aufs4/fs/notify/mark.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/notify/mark.c 2015-09-29 23:48:32.713006798 +0300
diff -Nurp linux-4.3.aufs/fs/notify/mark.c linux-4.3.aufs.mod/fs/notify/mark.c
--- linux-4.3.aufs/fs/notify/mark.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/fs/notify/mark.c 2015-11-19 22:32:42.500511399 +0200
@@ -109,6 +109,7 @@ void fsnotify_put_mark(struct fsnotify_m
mark->free_mark(mark);
}
@@ -138,15 +130,15 @@ diff -Nurp linux-4.2.2-aufs4/fs/notify/mark.c linux-4.2.2-aufs4-mod/fs/notify/ma
/* Calculate mask of events for a list of marks */
u32 fsnotify_recalc_mask(struct hlist_head *head)
@@ -202,6 +203,7 @@ void fsnotify_destroy_mark(struct fsnoti
fsnotify_destroy_mark_locked(mark, group);
mutex_unlock(&group->mark_mutex);
@@ -199,6 +200,7 @@ void fsnotify_free_mark(struct fsnotify_
if (group->ops->freeing_mark)
group->ops->freeing_mark(mark, group);
}
+EXPORT_SYMBOL(fsnotify_destroy_mark);
/*
* Destroy all marks in the given list. The marks must be already detached from
@@ -386,6 +388,7 @@ int fsnotify_add_mark(struct fsnotify_ma
void fsnotify_destroy_mark(struct fsnotify_mark *mark,
struct fsnotify_group *group)
@@ -402,6 +404,7 @@ int fsnotify_add_mark(struct fsnotify_ma
mutex_unlock(&group->mark_mutex);
return ret;
}
@@ -154,7 +146,7 @@ diff -Nurp linux-4.2.2-aufs4/fs/notify/mark.c linux-4.2.2-aufs4-mod/fs/notify/ma
/*
* Given a list of marks, find the mark associated with given group. If found
@@ -475,6 +478,7 @@ void fsnotify_init_mark(struct fsnotify_
@@ -492,6 +495,7 @@ void fsnotify_init_mark(struct fsnotify_
atomic_set(&mark->refcnt, 1);
mark->free_mark = free_mark;
}
@@ -162,9 +154,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/notify/mark.c linux-4.2.2-aufs4-mod/fs/notify/ma
static int fsnotify_mark_destroy(void *ignored)
{
diff -Nurp linux-4.2.2-aufs4/fs/open.c linux-4.2.2-aufs4-mod/fs/open.c
--- linux-4.2.2-aufs4/fs/open.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/fs/open.c 2015-09-29 23:48:32.713006798 +0300
diff -Nurp linux-4.3.aufs/fs/open.c linux-4.3.aufs.mod/fs/open.c
--- linux-4.3.aufs/fs/open.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/fs/open.c 2015-11-19 22:32:42.500511399 +0200
@@ -64,6 +64,7 @@ int do_truncate(struct dentry *dentry, l
mutex_unlock(&dentry->d_inode->i_mutex);
return ret;
@@ -181,9 +173,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/open.c linux-4.2.2-aufs4-mod/fs/open.c
static int do_dentry_open(struct file *f,
struct inode *inode,
diff -Nurp linux-4.2.2-aufs4/fs/read_write.c linux-4.2.2-aufs4-mod/fs/read_write.c
--- linux-4.2.2-aufs4/fs/read_write.c 2015-09-29 23:28:44.645823816 +0300
+++ linux-4.2.2-aufs4-mod/fs/read_write.c 2015-09-29 23:48:32.713006798 +0300
diff -Nurp linux-4.3.aufs/fs/read_write.c linux-4.3.aufs.mod/fs/read_write.c
--- linux-4.3.aufs/fs/read_write.c 2015-11-19 22:31:36.530207761 +0200
+++ linux-4.3.aufs.mod/fs/read_write.c 2015-11-19 22:32:42.501511403 +0200
@@ -504,6 +504,7 @@ vfs_readf_t vfs_readf(struct file *file)
return new_sync_read;
return ERR_PTR(-ENOSYS);
@@ -200,9 +192,9 @@ diff -Nurp linux-4.2.2-aufs4/fs/read_write.c linux-4.2.2-aufs4-mod/fs/read_write
ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t *pos)
{
diff -Nurp linux-4.2.2-aufs4/fs/splice.c linux-4.2.2-aufs4-mod/fs/splice.c
--- linux-4.2.2-aufs4/fs/splice.c 2015-09-29 23:28:44.646823822 +0300
+++ linux-4.2.2-aufs4-mod/fs/splice.c 2015-09-29 23:48:32.713006798 +0300
diff -Nurp linux-4.3.aufs/fs/splice.c linux-4.3.aufs.mod/fs/splice.c
--- linux-4.3.aufs/fs/splice.c 2015-11-19 22:31:36.531207765 +0200
+++ linux-4.3.aufs.mod/fs/splice.c 2015-11-19 22:32:42.501511403 +0200
@@ -1115,6 +1115,7 @@ long do_splice_from(struct pipe_inode_in
return splice_write(pipe, out, ppos, len, flags);
@@ -219,10 +211,10 @@ diff -Nurp linux-4.2.2-aufs4/fs/splice.c linux-4.2.2-aufs4-mod/fs/splice.c
/**
* splice_direct_to_actor - splices data directly between two non-pipes
diff -Nurp linux-4.2.2-aufs4/security/commoncap.c linux-4.2.2-aufs4-mod/security/commoncap.c
--- linux-4.2.2-aufs4/security/commoncap.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/security/commoncap.c 2015-09-29 23:56:55.210817277 +0300
@@ -970,12 +970,14 @@ int cap_mmap_addr(unsigned long addr)
diff -Nurp linux-4.3.aufs/security/commoncap.c linux-4.3.aufs.mod/security/commoncap.c
--- linux-4.3.aufs/security/commoncap.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/security/commoncap.c 2015-11-19 22:32:42.501511403 +0200
@@ -1053,12 +1053,14 @@ int cap_mmap_addr(unsigned long addr)
}
return ret;
}
@@ -237,9 +229,9 @@ diff -Nurp linux-4.2.2-aufs4/security/commoncap.c linux-4.2.2-aufs4-mod/security
#ifdef CONFIG_SECURITY
diff -Nurp linux-4.2.2-aufs4/security/device_cgroup.c linux-4.2.2-aufs4-mod/security/device_cgroup.c
--- linux-4.2.2-aufs4/security/device_cgroup.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/security/device_cgroup.c 2015-09-29 23:48:32.714006803 +0300
diff -Nurp linux-4.3.aufs/security/device_cgroup.c linux-4.3.aufs.mod/security/device_cgroup.c
--- linux-4.3.aufs/security/device_cgroup.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/security/device_cgroup.c 2015-11-19 22:32:42.502511407 +0200
@@ -7,6 +7,7 @@
#include <linux/device_cgroup.h>
#include <linux/cgroup.h>
@@ -256,10 +248,10 @@ diff -Nurp linux-4.2.2-aufs4/security/device_cgroup.c linux-4.2.2-aufs4-mod/secu
int devcgroup_inode_mknod(int mode, dev_t dev)
{
diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/security.c
--- linux-4.2.2-aufs4/security/security.c 2015-08-30 21:34:09.000000000 +0300
+++ linux-4.2.2-aufs4-mod/security/security.c 2015-09-29 23:48:32.715006809 +0300
@@ -438,6 +438,7 @@ int security_path_rmdir(struct path *dir
diff -Nurp linux-4.3.aufs/security/security.c linux-4.3.aufs.mod/security/security.c
--- linux-4.3.aufs/security/security.c 2015-11-02 02:05:25.000000000 +0200
+++ linux-4.3.aufs.mod/security/security.c 2015-11-19 22:32:42.503511412 +0200
@@ -433,6 +433,7 @@ int security_path_rmdir(struct path *dir
return 0;
return call_int_hook(path_rmdir, 0, dir, dentry);
}
@@ -267,7 +259,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_path_unlink(struct path *dir, struct dentry *dentry)
{
@@ -454,6 +455,7 @@ int security_path_symlink(struct path *d
@@ -449,6 +450,7 @@ int security_path_symlink(struct path *d
return 0;
return call_int_hook(path_symlink, 0, dir, dentry, old_name);
}
@@ -275,7 +267,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_path_link(struct dentry *old_dentry, struct path *new_dir,
struct dentry *new_dentry)
@@ -462,6 +464,7 @@ int security_path_link(struct dentry *ol
@@ -457,6 +459,7 @@ int security_path_link(struct dentry *ol
return 0;
return call_int_hook(path_link, 0, old_dentry, new_dir, new_dentry);
}
@@ -283,7 +275,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_path_rename(struct path *old_dir, struct dentry *old_dentry,
struct path *new_dir, struct dentry *new_dentry,
@@ -489,6 +492,7 @@ int security_path_truncate(struct path *
@@ -484,6 +487,7 @@ int security_path_truncate(struct path *
return 0;
return call_int_hook(path_truncate, 0, path);
}
@@ -291,7 +283,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_path_chmod(struct path *path, umode_t mode)
{
@@ -496,6 +500,7 @@ int security_path_chmod(struct path *pat
@@ -491,6 +495,7 @@ int security_path_chmod(struct path *pat
return 0;
return call_int_hook(path_chmod, 0, path, mode);
}
@@ -299,7 +291,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_path_chown(struct path *path, kuid_t uid, kgid_t gid)
{
@@ -503,6 +508,7 @@ int security_path_chown(struct path *pat
@@ -498,6 +503,7 @@ int security_path_chown(struct path *pat
return 0;
return call_int_hook(path_chown, 0, path, uid, gid);
}
@@ -307,7 +299,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_path_chroot(struct path *path)
{
@@ -588,6 +594,7 @@ int security_inode_readlink(struct dentr
@@ -583,6 +589,7 @@ int security_inode_readlink(struct dentr
return 0;
return call_int_hook(inode_readlink, 0, dentry);
}
@@ -315,7 +307,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_inode_follow_link(struct dentry *dentry, struct inode *inode,
bool rcu)
@@ -603,6 +610,7 @@ int security_inode_permission(struct ino
@@ -598,6 +605,7 @@ int security_inode_permission(struct ino
return 0;
return call_int_hook(inode_permission, 0, inode, mask);
}
@@ -323,7 +315,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_inode_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -741,6 +749,7 @@ int security_file_permission(struct file
@@ -736,6 +744,7 @@ int security_file_permission(struct file
return fsnotify_perm(file, mask);
}
@@ -331,7 +323,7 @@ diff -Nurp linux-4.2.2-aufs4/security/security.c linux-4.2.2-aufs4-mod/security/
int security_file_alloc(struct file *file)
{
@@ -800,6 +809,7 @@ int security_mmap_file(struct file *file
@@ -795,6 +804,7 @@ int security_mmap_file(struct file *file
return ret;
return ima_file_mmap(file, prot);
}
+37 -7
View File
@@ -14,6 +14,25 @@
###
### Stable Queue
###
stable-arm-8449-1-fix-bug-in-vdsomunge-swab32-macro.patch
stable-usb-qcserial-add-sierra-wireless-mc74xx-em74xx.patch
stable-tipc-linearize-arriving-name_distr-and-link_proto-buffers.patch
stable-net-bcmgenet-software-reset-ephy-after-power-on.patch
stable-ipv4-fix-to-not-remove-local-route-on-link-down.patch
stable-ipv4-update-rtnh_f_linkdown-flag-on-up-event.patch
stable-stmmac-correctly-report-ptp-capabilities.patch
stable-ipmr-fix-possible-race-resulting-from-improper-usage-of-ip_inc_stats_bh-in-preemptible-context.patch
stable-qmi_wwan-fix-entry-for-hp-lt4112-lte-hspa-gobi-4g-module.patch
stable-sit-fix-sit0-percpu-double-allocations.patch
stable-sfc-push-partner-queue-for-skb-xmit_more.patch
stable-net-avoid-null-deref-in-inet_ctl_sock_destroy.patch
stable-ipv6-clean-up-dev_snmp6-proc-entry-when-we-fail-to-initialize-inet6_dev.patch
stable-ipv4-disable-bh-when-changing-ip-local-port-range.patch
stable-net-fix-prefsrc-lookups.patch
stable-tun_dst-fix-potential-null-dereference.patch
stable-packet-race-condition-in-packet_bind.patch
stable-bonding-fix-panic-on-non-arphrd_ether-enslave-failure.patch
stable-net-fix-a-race-in-dst_release.patch
###
### Arch x86
@@ -44,6 +63,12 @@ x86-KVM-x86-work-around-infinite-loop-in-microcode-when-AC-is-delivered.patch
# (CVE-2015-8104)
x86-KVM-svm-unconditionally-intercept-DB.patch
# efi borkage
Revert-x86-efi-Request-desired-alignment-via-the-PE-.patch
# breaks nvidia304
Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch
###
### Core
###
@@ -77,6 +102,10 @@ acpi-CLEVO-M360S-disable_acpi_irq.patch
# Clevo M720SR freezes with C3
acpi-processor-M720SR-limit-to-C2.patch
# backlight fixes
ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch
ACPI-video-Add-a-quirk-to-force-native-backlight-on-.patch
###
### Block
###
@@ -123,13 +152,17 @@ block-Make-CFQ-default-to-IOPS-mode-on-SSDs.patch
scsi-Revert-SCSI-Fix-NULL-pointer-dereference-in-runtime-PM.patch
scsi-Fix-NULL-pointer-dereference-in-RTPM-of-block-layer.patch
# ahci ids
ahci-Add-Marvell-88se91a2-device-id.patch
ahci-add-new-Intel-device-IDs.patch
###
### File-system
###
# aufs from: http://aufs.sourceforge.net/ (mga#8314)
fs-aufs4.patch
fs-aufs4-modular.patch
fs-aufs-4.3.patch
fs-aufs-4.3-modular.patch
###
### FireWire
@@ -258,8 +291,8 @@ include-kbuild-export-pci_ids.patch
###
###
### Thunderbolt
thunderbolt-Allow-loading-of-module-on-recent-Apple-.patch
###
###
###
### USB
@@ -329,9 +362,6 @@ video-mageia-logo.patch
# add rtl8723bs support (mga#15874)
3rd-rtl8723bs.patch
3rd-rtl8723bs-buildfix.patch
3rd-rtl8723bs-updates.patch
3rd-rtl8723bs-4.2-buildfix.patch
###
### Security
@@ -0,0 +1,35 @@
From 38850d786a799c3ff2de0dc1980902c3263698dc Mon Sep 17 00:00:00 2001
From: "H. Nikolaus Schaller" <hns@goldelico.com>
Date: Wed, 28 Oct 2015 19:00:26 +0100
Subject: ARM: 8449/1: fix bug in vdsomunge swab32 macro
From: "H. Nikolaus Schaller" <hns@goldelico.com>
commit 38850d786a799c3ff2de0dc1980902c3263698dc upstream.
Commit 8a603f91cc48 ("ARM: 8445/1: fix vdsomunge not to depend on
glibc specific byteswap.h") unfortunately introduced a bug created but
not found during discussion and patch simplification.
Reported-by: Efraim Yawitz <efraim.yawitz@gmail.com>
Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
Fixes: 8a603f91cc48 ("ARM: 8445/1: fix vdsomunge not to depend on glibc specific byteswap.h")
Signed-off-by: Nathan Lynch <nathan_lynch@mentor.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/arm/vdso/vdsomunge.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/arch/arm/vdso/vdsomunge.c
+++ b/arch/arm/vdso/vdsomunge.c
@@ -66,7 +66,7 @@
((((x) & 0x000000ff) << 24) | \
(((x) & 0x0000ff00) << 8) | \
(((x) & 0x00ff0000) >> 8) | \
- (((x) & 0xff000000) << 24))
+ (((x) & 0xff000000) >> 24))
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
#define HOST_ORDER ELFDATA2LSB
@@ -0,0 +1,44 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Jay Vosburgh <jay.vosburgh@canonical.com>
Date: Fri, 6 Nov 2015 17:23:23 -0800
Subject: bonding: fix panic on non-ARPHRD_ETHER enslave failure
From: Jay Vosburgh <jay.vosburgh@canonical.com>
[ Upstream commit 40baec225765c54eefa870530dd613bad9829bb7 ]
Since commit 7d5cd2ce529b, when bond_enslave fails on devices that
are not ARPHRD_ETHER, if needed, it resets the bonding device back to
ARPHRD_ETHER by calling ether_setup.
Unfortunately, ether_setup clobbers dev->flags, clearing IFF_UP
if the bond device is up, leaving it in a quasi-down state without
having actually gone through dev_close. For bonding, if any periodic
work queue items are active (miimon, arp_interval, etc), those will
remain running, as they are stopped by bond_close. At this point, if
the bonding module is unloaded or the bond is deleted, the system will
panic when the work function is called.
This panic is resolved by calling dev_close on the bond itself
prior to calling ether_setup.
Cc: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Fixes: 7d5cd2ce5292 ("bonding: correctly handle bonding type change on enslave failure")
Acked-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/bonding/bond_main.c | 1 +
1 file changed, 1 insertion(+)
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -1749,6 +1749,7 @@ err_undo_flags:
slave_dev->dev_addr))
eth_hw_addr_random(bond_dev);
if (bond_dev->type != ARPHRD_ETHER) {
+ dev_close(bond_dev);
ether_setup(bond_dev);
bond_dev->flags |= IFF_MASTER;
bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING;
@@ -0,0 +1,75 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Ani Sinha <ani@arista.com>
Date: Fri, 30 Oct 2015 16:54:31 -0700
Subject: ipmr: fix possible race resulting from improper usage of IP_INC_STATS_BH() in preemptible context.
From: Ani Sinha <ani@arista.com>
[ Upstream commit 44f49dd8b5a606870a1f21101522a0f9c4414784 ]
Fixes the following kernel BUG :
BUG: using __this_cpu_add() in preemptible [00000000] code: bash/2758
caller is __this_cpu_preempt_check+0x13/0x15
CPU: 0 PID: 2758 Comm: bash Tainted: P O 3.18.19 #2
ffffffff8170eaca ffff880110d1b788 ffffffff81482b2a 0000000000000000
0000000000000000 ffff880110d1b7b8 ffffffff812010ae ffff880007cab800
ffff88001a060800 ffff88013a899108 ffff880108b84240 ffff880110d1b7c8
Call Trace:
[<ffffffff81482b2a>] dump_stack+0x52/0x80
[<ffffffff812010ae>] check_preemption_disabled+0xce/0xe1
[<ffffffff812010d4>] __this_cpu_preempt_check+0x13/0x15
[<ffffffff81419d60>] ipmr_queue_xmit+0x647/0x70c
[<ffffffff8141a154>] ip_mr_forward+0x32f/0x34e
[<ffffffff8141af76>] ip_mroute_setsockopt+0xe03/0x108c
[<ffffffff810553fc>] ? get_parent_ip+0x11/0x42
[<ffffffff810e6974>] ? pollwake+0x4d/0x51
[<ffffffff81058ac0>] ? default_wake_function+0x0/0xf
[<ffffffff810553fc>] ? get_parent_ip+0x11/0x42
[<ffffffff810613d9>] ? __wake_up_common+0x45/0x77
[<ffffffff81486ea9>] ? _raw_spin_unlock_irqrestore+0x1d/0x32
[<ffffffff810618bc>] ? __wake_up_sync_key+0x4a/0x53
[<ffffffff8139a519>] ? sock_def_readable+0x71/0x75
[<ffffffff813dd226>] do_ip_setsockopt+0x9d/0xb55
[<ffffffff81429818>] ? unix_seqpacket_sendmsg+0x3f/0x41
[<ffffffff813963fe>] ? sock_sendmsg+0x6d/0x86
[<ffffffff813959d4>] ? sockfd_lookup_light+0x12/0x5d
[<ffffffff8139650a>] ? SyS_sendto+0xf3/0x11b
[<ffffffff810d5738>] ? new_sync_read+0x82/0xaa
[<ffffffff813ddd19>] compat_ip_setsockopt+0x3b/0x99
[<ffffffff813fb24a>] compat_raw_setsockopt+0x11/0x32
[<ffffffff81399052>] compat_sock_common_setsockopt+0x18/0x1f
[<ffffffff813c4d05>] compat_SyS_setsockopt+0x1a9/0x1cf
[<ffffffff813c4149>] compat_SyS_socketcall+0x180/0x1e3
[<ffffffff81488ea1>] cstar_dispatch+0x7/0x1e
Signed-off-by: Ani Sinha <ani@arista.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv4/ipmr.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -1682,8 +1682,8 @@ static inline int ipmr_forward_finish(st
{
struct ip_options *opt = &(IPCB(skb)->opt);
- IP_INC_STATS_BH(dev_net(skb_dst(skb)->dev), IPSTATS_MIB_OUTFORWDATAGRAMS);
- IP_ADD_STATS_BH(dev_net(skb_dst(skb)->dev), IPSTATS_MIB_OUTOCTETS, skb->len);
+ IP_INC_STATS(dev_net(skb_dst(skb)->dev), IPSTATS_MIB_OUTFORWDATAGRAMS);
+ IP_ADD_STATS(dev_net(skb_dst(skb)->dev), IPSTATS_MIB_OUTOCTETS, skb->len);
if (unlikely(opt->optlen))
ip_forward_options(skb);
@@ -1745,7 +1745,7 @@ static void ipmr_queue_xmit(struct net *
* to blackhole.
*/
- IP_INC_STATS_BH(dev_net(dev), IPSTATS_MIB_FRAGFAILS);
+ IP_INC_STATS(dev_net(dev), IPSTATS_MIB_FRAGFAILS);
ip_rt_put(rt);
goto out_free;
}
@@ -0,0 +1,66 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: WANG Cong <xiyou.wangcong@gmail.com>
Date: Tue, 3 Nov 2015 14:32:57 -0800
Subject: ipv4: disable BH when changing ip local port range
From: WANG Cong <xiyou.wangcong@gmail.com>
[ Upstream commit 4ee3bd4a8c7463cdef0b82ebc33fc94a9170a7e0 ]
This fixes the following lockdep warning:
[ INFO: inconsistent lock state ]
4.3.0-rc7+ #1197 Not tainted
---------------------------------
inconsistent {IN-SOFTIRQ-R} -> {SOFTIRQ-ON-W} usage.
sysctl/1019 [HC0[0]:SC0[0]:HE1:SE1] takes:
(&(&net->ipv4.ip_local_ports.lock)->seqcount){+.+-..}, at: [<ffffffff81921de7>] ipv4_local_port_range+0xb4/0x12a
{IN-SOFTIRQ-R} state was registered at:
[<ffffffff810bd682>] __lock_acquire+0x2f6/0xdf0
[<ffffffff810be6d5>] lock_acquire+0x11c/0x1a4
[<ffffffff818e599c>] inet_get_local_port_range+0x4e/0xae
[<ffffffff8166e8e3>] udp_flow_src_port.constprop.40+0x23/0x116
[<ffffffff81671cb9>] vxlan_xmit_one+0x219/0xa6a
[<ffffffff81672f75>] vxlan_xmit+0xa6b/0xaa5
[<ffffffff817f2deb>] dev_hard_start_xmit+0x2ae/0x465
[<ffffffff817f35ed>] __dev_queue_xmit+0x531/0x633
[<ffffffff817f3702>] dev_queue_xmit_sk+0x13/0x15
[<ffffffff818004a5>] neigh_resolve_output+0x12f/0x14d
[<ffffffff81959cfa>] ip6_finish_output2+0x344/0x39f
[<ffffffff8195bf58>] ip6_finish_output+0x88/0x8e
[<ffffffff8195bfef>] ip6_output+0x91/0xe5
[<ffffffff819792ae>] dst_output_sk+0x47/0x4c
[<ffffffff81979392>] NF_HOOK_THRESH.constprop.30+0x38/0x82
[<ffffffff8197981e>] mld_sendpack+0x189/0x266
[<ffffffff8197b28b>] mld_ifc_timer_expire+0x1ef/0x223
[<ffffffff810de581>] call_timer_fn+0xfb/0x28c
[<ffffffff810ded1e>] run_timer_softirq+0x1c7/0x1f1
Fixes: b8f1a55639e6 ("udp: Add function to make source port for UDP tunnels")
Cc: Tom Herbert <tom@herbertland.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv4/sysctl_net_ipv4.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -48,14 +48,14 @@ static void set_local_port_range(struct
{
bool same_parity = !((range[0] ^ range[1]) & 1);
- write_seqlock(&net->ipv4.ip_local_ports.lock);
+ write_seqlock_bh(&net->ipv4.ip_local_ports.lock);
if (same_parity && !net->ipv4.ip_local_ports.warned) {
net->ipv4.ip_local_ports.warned = true;
pr_err_ratelimited("ip_local_port_range: prefer different parity for start/end values.\n");
}
net->ipv4.ip_local_ports.range[0] = range[0];
net->ipv4.ip_local_ports.range[1] = range[1];
- write_sequnlock(&net->ipv4.ip_local_ports.lock);
+ write_sequnlock_bh(&net->ipv4.ip_local_ports.lock);
}
/* Validate changes from /proc interface. */
@@ -0,0 +1,120 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Julian Anastasov <ja@ssi.bg>
Date: Fri, 30 Oct 2015 10:23:33 +0200
Subject: ipv4: fix to not remove local route on link down
From: Julian Anastasov <ja@ssi.bg>
[ Upstream commit 4f823defdd5b106a5e89745ee8b163c71855de1e ]
When fib_netdev_event calls fib_disable_ip on NETDEV_DOWN event
we should not delete the local routes if the local address
is still present. The confusion comes from the fact that both
fib_netdev_event and fib_inetaddr_event use the NETDEV_DOWN
constant. Fix it by returning back the variable 'force'.
Steps to reproduce:
modprobe dummy
ifconfig dummy0 192.168.168.1 up
ifconfig dummy0 down
ip route list table local | grep dummy | grep host
local 192.168.168.1 dev dummy0 proto kernel scope host src 192.168.168.1
Fixes: 8a3d03166f19 ("net: track link-status of ipv4 nexthops")
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/net/ip_fib.h | 2 +-
net/ipv4/fib_frontend.c | 13 +++++++------
net/ipv4/fib_semantics.c | 11 ++++++++---
3 files changed, 16 insertions(+), 10 deletions(-)
--- a/include/net/ip_fib.h
+++ b/include/net/ip_fib.h
@@ -317,7 +317,7 @@ void fib_flush_external(struct net *net)
/* Exported by fib_semantics.c */
int ip_fib_check_default(__be32 gw, struct net_device *dev);
-int fib_sync_down_dev(struct net_device *dev, unsigned long event);
+int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force);
int fib_sync_down_addr(struct net *net, __be32 local);
int fib_sync_up(struct net_device *dev, unsigned int nh_flags);
void fib_select_multipath(struct fib_result *res);
--- a/net/ipv4/fib_frontend.c
+++ b/net/ipv4/fib_frontend.c
@@ -1110,9 +1110,10 @@ static void nl_fib_lookup_exit(struct ne
net->ipv4.fibnl = NULL;
}
-static void fib_disable_ip(struct net_device *dev, unsigned long event)
+static void fib_disable_ip(struct net_device *dev, unsigned long event,
+ bool force)
{
- if (fib_sync_down_dev(dev, event))
+ if (fib_sync_down_dev(dev, event, force))
fib_flush(dev_net(dev));
rt_cache_flush(dev_net(dev));
arp_ifdown(dev);
@@ -1140,7 +1141,7 @@ static int fib_inetaddr_event(struct not
/* Last address was deleted from this interface.
* Disable IP.
*/
- fib_disable_ip(dev, event);
+ fib_disable_ip(dev, event, true);
} else {
rt_cache_flush(dev_net(dev));
}
@@ -1157,7 +1158,7 @@ static int fib_netdev_event(struct notif
unsigned int flags;
if (event == NETDEV_UNREGISTER) {
- fib_disable_ip(dev, event);
+ fib_disable_ip(dev, event, true);
rt_flush_dev(dev);
return NOTIFY_DONE;
}
@@ -1178,14 +1179,14 @@ static int fib_netdev_event(struct notif
rt_cache_flush(net);
break;
case NETDEV_DOWN:
- fib_disable_ip(dev, event);
+ fib_disable_ip(dev, event, false);
break;
case NETDEV_CHANGE:
flags = dev_get_flags(dev);
if (flags & (IFF_RUNNING | IFF_LOWER_UP))
fib_sync_up(dev, RTNH_F_LINKDOWN);
else
- fib_sync_down_dev(dev, event);
+ fib_sync_down_dev(dev, event, false);
/* fall through */
case NETDEV_CHANGEMTU:
rt_cache_flush(net);
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -1281,7 +1281,13 @@ int fib_sync_down_addr(struct net *net,
return ret;
}
-int fib_sync_down_dev(struct net_device *dev, unsigned long event)
+/* Event force Flags Description
+ * NETDEV_CHANGE 0 LINKDOWN Carrier OFF, not for scope host
+ * NETDEV_DOWN 0 LINKDOWN|DEAD Link down, not for scope host
+ * NETDEV_DOWN 1 LINKDOWN|DEAD Last address removed
+ * NETDEV_UNREGISTER 1 LINKDOWN|DEAD Device removed
+ */
+int fib_sync_down_dev(struct net_device *dev, unsigned long event, bool force)
{
int ret = 0;
int scope = RT_SCOPE_NOWHERE;
@@ -1290,8 +1296,7 @@ int fib_sync_down_dev(struct net_device
struct hlist_head *head = &fib_info_devhash[hash];
struct fib_nh *nh;
- if (event == NETDEV_UNREGISTER ||
- event == NETDEV_DOWN)
+ if (force)
scope = -1;
hlist_for_each_entry(nh, head, nh_hash) {
@@ -0,0 +1,62 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Julian Anastasov <ja@ssi.bg>
Date: Fri, 30 Oct 2015 10:23:34 +0200
Subject: ipv4: update RTNH_F_LINKDOWN flag on UP event
From: Julian Anastasov <ja@ssi.bg>
[ Upstream commit c9b3292eeb52c6834e972eb5b8fe38914771ed12 ]
When nexthop is part of multipath route we should clear the
LINKDOWN flag when link goes UP or when first address is added.
This is needed because we always set LINKDOWN flag when DEAD flag
was set but now on UP the nexthop is not dead anymore. Examples when
LINKDOWN bit can be forgotten when no NETDEV_CHANGE is delivered:
- link goes down (LINKDOWN is set), then link goes UP and device
shows carrier OK but LINKDOWN remains set
- last address is deleted (LINKDOWN is set), then address is
added and device shows carrier OK but LINKDOWN remains set
Steps to reproduce:
modprobe dummy
ifconfig dummy0 192.168.168.1 up
here add a multipath route where one nexthop is for dummy0:
ip route add 1.2.3.4 nexthop dummy0 nexthop SOME_OTHER_DEVICE
ifconfig dummy0 down
ifconfig dummy0 up
now ip route shows nexthop that is not dead. Now set the sysctl var:
echo 1 > /proc/sys/net/ipv4/conf/dummy0/ignore_routes_with_linkdown
now ip route will show a dead nexthop because the forgotten
RTNH_F_LINKDOWN is propagated as RTNH_F_DEAD.
Fixes: 8a3d03166f19 ("net: track link-status of ipv4 nexthops")
Signed-off-by: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv4/fib_semantics.c | 7 +++++++
1 file changed, 7 insertions(+)
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -1445,6 +1445,13 @@ int fib_sync_up(struct net_device *dev,
if (!(dev->flags & IFF_UP))
return 0;
+ if (nh_flags & RTNH_F_DEAD) {
+ unsigned int flags = dev_get_flags(dev);
+
+ if (flags & (IFF_RUNNING | IFF_LOWER_UP))
+ nh_flags |= RTNH_F_LINKDOWN;
+ }
+
prev_fi = NULL;
hash = fib_devindex_hashfn(dev->ifindex);
head = &fib_info_devhash[hash];
@@ -0,0 +1,32 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Sabrina Dubroca <sd@queasysnail.net>
Date: Wed, 4 Nov 2015 14:47:53 +0100
Subject: ipv6: clean up dev_snmp6 proc entry when we fail to initialize inet6_dev
From: Sabrina Dubroca <sd@queasysnail.net>
[ Upstream commit 2a189f9e57650e9f310ddf4aad75d66c1233a064 ]
In ipv6_add_dev, when addrconf_sysctl_register fails, we do not clean up
the dev_snmp6 entry that we have already registered for this device.
Call snmp6_unregister_dev in this case.
Fixes: a317a2f19da7d ("ipv6: fail early when creating netdev named all or default")
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv6/addrconf.c | 1 +
1 file changed, 1 insertion(+)
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -417,6 +417,7 @@ static struct inet6_dev *ipv6_add_dev(st
if (err) {
ipv6_mc_destroy_dev(ndev);
del_timer(&ndev->regen_timer);
+ snmp6_unregister_dev(ndev);
goto err_release;
}
/* protected by rtnl_lock */
@@ -0,0 +1,33 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Eric Dumazet <edumazet@google.com>
Date: Mon, 2 Nov 2015 07:50:07 -0800
Subject: net: avoid NULL deref in inet_ctl_sock_destroy()
From: Eric Dumazet <edumazet@google.com>
[ Upstream commit 8fa677d2706d325d71dab91bf6e6512c05214e37 ]
Under low memory conditions, tcp_sk_init() and icmp_sk_init()
can both iterate on all possible cpus and call inet_ctl_sock_destroy(),
with eventual NULL pointer.
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/net/inet_common.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/include/net/inet_common.h
+++ b/include/net/inet_common.h
@@ -41,7 +41,8 @@ int inet_recv_error(struct sock *sk, str
static inline void inet_ctl_sock_destroy(struct sock *sk)
{
- sock_release(sk->sk_socket);
+ if (sk)
+ sock_release(sk->sk_socket);
}
#endif
@@ -0,0 +1,91 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Thu, 29 Oct 2015 18:11:35 -0700
Subject: net: bcmgenet: Software reset EPHY after power on
From: Florian Fainelli <f.fainelli@gmail.com>
[ Upstream commit 5dbebbb44a6ad94aab2cd1a46f7676f255403f64 ]
The EPHY on GENET v1->v3 is extremely finicky, and will show occasional
failures based on the timing and reset sequence, ranging from duplicate
packets, to extremely high latencies.
Perform an additional software reset, and re-configuration to make sure it is
in a consistent and working state.
Fixes: 6ac3ce8295e6 ("net: bcmgenet: Remove excessive PHY reset")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 +++-
drivers/net/ethernet/broadcom/genet/bcmgenet.h | 1 +
drivers/net/ethernet/broadcom/genet/bcmmii.c | 18 ++++++++++++++++++
3 files changed, 22 insertions(+), 1 deletion(-)
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -907,8 +907,10 @@ static void bcmgenet_power_up(struct bcm
}
bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT);
- if (mode == GENET_POWER_PASSIVE)
+ if (mode == GENET_POWER_PASSIVE) {
bcmgenet_phy_power_set(priv->dev, true);
+ bcmgenet_mii_reset(priv->dev);
+ }
}
/* ioctl handle special commands that are not present in ethtool. */
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h
@@ -674,6 +674,7 @@ int bcmgenet_mii_init(struct net_device
int bcmgenet_mii_config(struct net_device *dev);
int bcmgenet_mii_probe(struct net_device *dev);
void bcmgenet_mii_exit(struct net_device *dev);
+void bcmgenet_mii_reset(struct net_device *dev);
void bcmgenet_phy_power_set(struct net_device *dev, bool enable);
void bcmgenet_mii_setup(struct net_device *dev);
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -163,6 +163,7 @@ void bcmgenet_mii_setup(struct net_devic
phy_print_status(phydev);
}
+
static int bcmgenet_fixed_phy_link_update(struct net_device *dev,
struct fixed_phy_status *status)
{
@@ -172,6 +173,22 @@ static int bcmgenet_fixed_phy_link_updat
return 0;
}
+/* Perform a voluntary PHY software reset, since the EPHY is very finicky about
+ * not doing it and will start corrupting packets
+ */
+void bcmgenet_mii_reset(struct net_device *dev)
+{
+ struct bcmgenet_priv *priv = netdev_priv(dev);
+
+ if (GENET_IS_V4(priv))
+ return;
+
+ if (priv->phydev) {
+ phy_init_hw(priv->phydev);
+ phy_start_aneg(priv->phydev);
+ }
+}
+
void bcmgenet_phy_power_set(struct net_device *dev, bool enable)
{
struct bcmgenet_priv *priv = netdev_priv(dev);
@@ -214,6 +231,7 @@ static void bcmgenet_internal_phy_setup(
reg = bcmgenet_ext_readl(priv, EXT_EXT_PWR_MGMT);
reg |= EXT_PWR_DN_EN_LD;
bcmgenet_ext_writel(priv, reg, EXT_EXT_PWR_MGMT);
+ bcmgenet_mii_reset(dev);
}
static void bcmgenet_moca_phy_setup(struct bcmgenet_priv *priv)
@@ -0,0 +1,34 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Eric Dumazet <edumazet@google.com>
Date: Mon, 9 Nov 2015 17:51:23 -0800
Subject: net: fix a race in dst_release()
From: Eric Dumazet <edumazet@google.com>
[ Upstream commit d69bbf88c8d0b367cf3e3a052f6daadf630ee566 ]
Only cpu seeing dst refcount going to 0 can safely
dereference dst->flags.
Otherwise an other cpu might already have freed the dst.
Fixes: 27b75c95f10d ("net: avoid RCU for NOCACHE dst")
Reported-by: Greg Thelen <gthelen@google.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/core/dst.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
--- a/net/core/dst.c
+++ b/net/core/dst.c
@@ -306,7 +306,7 @@ void dst_release(struct dst_entry *dst)
if (unlikely(newrefcnt < 0))
net_warn_ratelimited("%s: dst:%p refcnt:%d\n",
__func__, dst, newrefcnt);
- if (unlikely(dst->flags & DST_NOCACHE) && !newrefcnt)
+ if (!newrefcnt && unlikely(dst->flags & DST_NOCACHE))
call_rcu(&dst->rcu_head, dst_destroy_rcu);
}
}
@@ -0,0 +1,55 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: David Ahern <dsa@cumulusnetworks.com>
Date: Tue, 3 Nov 2015 15:59:28 -0800
Subject: net: Fix prefsrc lookups
From: David Ahern <dsa@cumulusnetworks.com>
[ Upstream commit e1b8d903c6c3862160d2d5036806a94786c8fc4e ]
A bug report (https://bugzilla.kernel.org/show_bug.cgi?id=107071) noted
that the follwoing ip command is failing with v4.3:
$ ip route add 10.248.5.0/24 dev bond0.250 table vlan_250 src 10.248.5.154
RTNETLINK answers: Invalid argument
021dd3b8a142d changed the lookup of the given preferred source address to
use the table id passed in, but this assumes the local entries are in the
given table which is not necessarily true for non-VRF use cases. When
validating the preferred source fallback to the local table on failure.
Fixes: 021dd3b8a142d ("net: Add routes to the table associated with the device")
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv4/fib_semantics.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -864,14 +864,21 @@ static bool fib_valid_prefsrc(struct fib
if (cfg->fc_type != RTN_LOCAL || !cfg->fc_dst ||
fib_prefsrc != cfg->fc_dst) {
u32 tb_id = cfg->fc_table;
+ int rc;
if (tb_id == RT_TABLE_MAIN)
tb_id = RT_TABLE_LOCAL;
- if (inet_addr_type_table(cfg->fc_nlinfo.nl_net,
- fib_prefsrc, tb_id) != RTN_LOCAL) {
- return false;
+ rc = inet_addr_type_table(cfg->fc_nlinfo.nl_net,
+ fib_prefsrc, tb_id);
+
+ if (rc != RTN_LOCAL && tb_id != RT_TABLE_LOCAL) {
+ rc = inet_addr_type_table(cfg->fc_nlinfo.nl_net,
+ fib_prefsrc, RT_TABLE_LOCAL);
}
+
+ if (rc != RTN_LOCAL)
+ return false;
}
return true;
}
@@ -0,0 +1,231 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Francesco Ruggeri <fruggeri@aristanetworks.com>
Date: Thu, 5 Nov 2015 08:16:14 -0800
Subject: packet: race condition in packet_bind
From: Francesco Ruggeri <fruggeri@aristanetworks.com>
[ Upstream commit 30f7ea1c2b5f5fb7462c5ae44fe2e40cb2d6a474 ]
There is a race conditions between packet_notifier and packet_bind{_spkt}.
It happens if packet_notifier(NETDEV_UNREGISTER) executes between the
time packet_bind{_spkt} takes a reference on the new netdevice and the
time packet_do_bind sets po->ifindex.
In this case the notification can be missed.
If this happens during a dev_change_net_namespace this can result in the
netdevice to be moved to the new namespace while the packet_sock in the
old namespace still holds a reference on it. When the netdevice is later
deleted in the new namespace the deletion hangs since the packet_sock
is not found in the new namespace' &net->packet.sklist.
It can be reproduced with the script below.
This patch makes packet_do_bind check again for the presence of the
netdevice in the packet_sock's namespace after the synchronize_net
in unregister_prot_hook.
More in general it also uses the rcu lock for the duration of the bind
to stop dev_change_net_namespace/rollback_registered_many from
going past the synchronize_net following unlist_netdevice, so that
no NETDEV_UNREGISTER notifications can happen on the new netdevice
while the bind is executing. In order to do this some code from
packet_bind{_spkt} is consolidated into packet_do_dev.
import socket, os, time, sys
proto=7
realDev='em1'
vlanId=400
if len(sys.argv) > 1:
vlanId=int(sys.argv[1])
dev='vlan%d' % vlanId
os.system('taskset -p 0x10 %d' % os.getpid())
s = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, proto)
os.system('ip link add link %s name %s type vlan id %d' %
(realDev, dev, vlanId))
os.system('ip netns add dummy')
pid=os.fork()
if pid == 0:
# dev should be moved while packet_do_bind is in synchronize net
os.system('taskset -p 0x20000 %d' % os.getpid())
os.system('ip link set %s netns dummy' % dev)
os.system('ip netns exec dummy ip link del %s' % dev)
s.close()
sys.exit(0)
time.sleep(.004)
try:
s.bind(('%s' % dev, proto+1))
except:
print 'Could not bind socket'
s.close()
os.system('ip netns del dummy')
sys.exit(0)
os.waitpid(pid, 0)
s.close()
os.system('ip netns del dummy')
sys.exit(0)
Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/packet/af_packet.c | 80 ++++++++++++++++++++++++++++++-------------------
1 file changed, 49 insertions(+), 31 deletions(-)
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -2903,22 +2903,40 @@ static int packet_release(struct socket
* Attach a packet hook.
*/
-static int packet_do_bind(struct sock *sk, struct net_device *dev, __be16 proto)
+static int packet_do_bind(struct sock *sk, const char *name, int ifindex,
+ __be16 proto)
{
struct packet_sock *po = pkt_sk(sk);
struct net_device *dev_curr;
__be16 proto_curr;
bool need_rehook;
+ struct net_device *dev = NULL;
+ int ret = 0;
+ bool unlisted = false;
- if (po->fanout) {
- if (dev)
- dev_put(dev);
-
+ if (po->fanout)
return -EINVAL;
- }
lock_sock(sk);
spin_lock(&po->bind_lock);
+ rcu_read_lock();
+
+ if (name) {
+ dev = dev_get_by_name_rcu(sock_net(sk), name);
+ if (!dev) {
+ ret = -ENODEV;
+ goto out_unlock;
+ }
+ } else if (ifindex) {
+ dev = dev_get_by_index_rcu(sock_net(sk), ifindex);
+ if (!dev) {
+ ret = -ENODEV;
+ goto out_unlock;
+ }
+ }
+
+ if (dev)
+ dev_hold(dev);
proto_curr = po->prot_hook.type;
dev_curr = po->prot_hook.dev;
@@ -2926,14 +2944,29 @@ static int packet_do_bind(struct sock *s
need_rehook = proto_curr != proto || dev_curr != dev;
if (need_rehook) {
- unregister_prot_hook(sk, true);
+ if (po->running) {
+ rcu_read_unlock();
+ __unregister_prot_hook(sk, true);
+ rcu_read_lock();
+ dev_curr = po->prot_hook.dev;
+ if (dev)
+ unlisted = !dev_get_by_index_rcu(sock_net(sk),
+ dev->ifindex);
+ }
po->num = proto;
po->prot_hook.type = proto;
- po->prot_hook.dev = dev;
- po->ifindex = dev ? dev->ifindex : 0;
- packet_cached_dev_assign(po, dev);
+ if (unlikely(unlisted)) {
+ dev_put(dev);
+ po->prot_hook.dev = NULL;
+ po->ifindex = -1;
+ packet_cached_dev_reset(po);
+ } else {
+ po->prot_hook.dev = dev;
+ po->ifindex = dev ? dev->ifindex : 0;
+ packet_cached_dev_assign(po, dev);
+ }
}
if (dev_curr)
dev_put(dev_curr);
@@ -2941,7 +2974,7 @@ static int packet_do_bind(struct sock *s
if (proto == 0 || !need_rehook)
goto out_unlock;
- if (!dev || (dev->flags & IFF_UP)) {
+ if (!unlisted && (!dev || (dev->flags & IFF_UP))) {
register_prot_hook(sk);
} else {
sk->sk_err = ENETDOWN;
@@ -2950,9 +2983,10 @@ static int packet_do_bind(struct sock *s
}
out_unlock:
+ rcu_read_unlock();
spin_unlock(&po->bind_lock);
release_sock(sk);
- return 0;
+ return ret;
}
/*
@@ -2964,8 +2998,6 @@ static int packet_bind_spkt(struct socke
{
struct sock *sk = sock->sk;
char name[15];
- struct net_device *dev;
- int err = -ENODEV;
/*
* Check legality
@@ -2975,19 +3007,13 @@ static int packet_bind_spkt(struct socke
return -EINVAL;
strlcpy(name, uaddr->sa_data, sizeof(name));
- dev = dev_get_by_name(sock_net(sk), name);
- if (dev)
- err = packet_do_bind(sk, dev, pkt_sk(sk)->num);
- return err;
+ return packet_do_bind(sk, name, 0, pkt_sk(sk)->num);
}
static int packet_bind(struct socket *sock, struct sockaddr *uaddr, int addr_len)
{
struct sockaddr_ll *sll = (struct sockaddr_ll *)uaddr;
struct sock *sk = sock->sk;
- struct net_device *dev = NULL;
- int err;
-
/*
* Check legality
@@ -2998,16 +3024,8 @@ static int packet_bind(struct socket *so
if (sll->sll_family != AF_PACKET)
return -EINVAL;
- if (sll->sll_ifindex) {
- err = -ENODEV;
- dev = dev_get_by_index(sock_net(sk), sll->sll_ifindex);
- if (dev == NULL)
- goto out;
- }
- err = packet_do_bind(sk, dev, sll->sll_protocol ? : pkt_sk(sk)->num);
-
-out:
- return err;
+ return packet_do_bind(sk, NULL, sll->sll_ifindex,
+ sll->sll_protocol ? : pkt_sk(sk)->num);
}
static struct proto packet_proto = {
@@ -0,0 +1,55 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
Date: Sun, 1 Nov 2015 01:34:50 +0100
Subject: qmi_wwan: fix entry for HP lt4112 LTE/HSPA+ Gobi 4G Module
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn@mork.no>
[ Upstream commit 70910791731b5956171e1bfcad707766b8e18fee ]
The lt4112 is a HP branded Huawei me906e modem. Like other Huawei
modems, it does not have a fixed interface to function mapping.
Instead it uses a Huawei specific scheme: functions are mapped by
subclass and protocol.
However, the HP vendor ID is used for modems from many different
manufacturers using different schemes, so we cannot apply a generic
vendor rule like we do for the Huawei vendor ID.
Replace the previous lt4112 entry pointing to an arbitrary interface
number with a device specific subclass + protocol match.
Reported-and-tested-by: Muri Nicanor <muri+libqmi@immerda.ch>
Tested-by: Martin Hauke <mardnh@gmx.de>
Fixes: bb2bdeb83fb1 ("qmi_wwan: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem")
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/usb/qmi_wwan.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -539,6 +539,10 @@ static const struct usb_device_id produc
USB_CDC_PROTO_NONE),
.driver_info = (unsigned long)&qmi_wwan_info,
},
+ { /* HP lt4112 LTE/HSPA+ Gobi 4G Module (Huawei me906e) */
+ USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7),
+ .driver_info = (unsigned long)&qmi_wwan_info,
+ },
/* 3. Combined interface devices matching on interface number */
{QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */
@@ -791,7 +795,6 @@ static const struct usb_device_id produc
{QMI_FIXED_INTF(0x413c, 0x81a9, 8)}, /* Dell Wireless 5808e Gobi(TM) 4G LTE Mobile Broadband Card */
{QMI_FIXED_INTF(0x413c, 0x81b1, 8)}, /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card */
{QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)}, /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
- {QMI_FIXED_INTF(0x03f0, 0x581d, 4)}, /* HP lt4112 LTE/HSPA+ Gobi 4G Module (Huawei me906e) */
/* 4. Gobi 1000 devices */
{QMI_GOBI1K_DEVICE(0x05c6, 0x9212)}, /* Acer Gobi Modem Device */
@@ -0,0 +1,137 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Martin Habets <mhabets@solarflare.com>
Date: Mon, 2 Nov 2015 12:51:31 +0000
Subject: sfc: push partner queue for skb->xmit_more
From: Martin Habets <mhabets@solarflare.com>
[ Upstream commit b2663a4f30e85ec606b806f5135413e6d5c78d1e ]
When the IP stack passes SKBs the sfc driver puts them in 2 different TX
queues (called partners), one for checksummed and one for not checksummed.
If the SKB has xmit_more set the driver will delay pushing the work to the
NIC.
When later it does decide to push the buffers this patch ensures it also
pushes the partner queue, if that also has any delayed work. Before this
fix the work in the partner queue would be left for a long time and cause
a netdev watchdog.
Fixes: 70b33fb ("sfc: add support for skb->xmit_more")
Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Martin Habets <mhabets@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/sfc/ef10.c | 4 +++-
drivers/net/ethernet/sfc/farch.c | 4 +++-
drivers/net/ethernet/sfc/net_driver.h | 2 ++
drivers/net/ethernet/sfc/tx.c | 30 ++++++++++++++++++++++++++++--
4 files changed, 36 insertions(+), 4 deletions(-)
--- a/drivers/net/ethernet/sfc/ef10.c
+++ b/drivers/net/ethernet/sfc/ef10.c
@@ -1849,7 +1849,9 @@ static void efx_ef10_tx_write(struct efx
unsigned int write_ptr;
efx_qword_t *txd;
- BUG_ON(tx_queue->write_count == tx_queue->insert_count);
+ tx_queue->xmit_more_available = false;
+ if (unlikely(tx_queue->write_count == tx_queue->insert_count))
+ return;
do {
write_ptr = tx_queue->write_count & tx_queue->ptr_mask;
--- a/drivers/net/ethernet/sfc/farch.c
+++ b/drivers/net/ethernet/sfc/farch.c
@@ -321,7 +321,9 @@ void efx_farch_tx_write(struct efx_tx_qu
unsigned write_ptr;
unsigned old_write_count = tx_queue->write_count;
- BUG_ON(tx_queue->write_count == tx_queue->insert_count);
+ tx_queue->xmit_more_available = false;
+ if (unlikely(tx_queue->write_count == tx_queue->insert_count))
+ return;
do {
write_ptr = tx_queue->write_count & tx_queue->ptr_mask;
--- a/drivers/net/ethernet/sfc/net_driver.h
+++ b/drivers/net/ethernet/sfc/net_driver.h
@@ -219,6 +219,7 @@ struct efx_tx_buffer {
* @tso_packets: Number of packets via the TSO xmit path
* @pushes: Number of times the TX push feature has been used
* @pio_packets: Number of times the TX PIO feature has been used
+ * @xmit_more_available: Are any packets waiting to be pushed to the NIC
* @empty_read_count: If the completion path has seen the queue as empty
* and the transmission path has not yet checked this, the value of
* @read_count bitwise-added to %EFX_EMPTY_COUNT_VALID; otherwise 0.
@@ -253,6 +254,7 @@ struct efx_tx_queue {
unsigned int tso_packets;
unsigned int pushes;
unsigned int pio_packets;
+ bool xmit_more_available;
/* Statistics to supplement MAC stats */
unsigned long tx_packets;
--- a/drivers/net/ethernet/sfc/tx.c
+++ b/drivers/net/ethernet/sfc/tx.c
@@ -431,8 +431,20 @@ finish_packet:
efx_tx_maybe_stop_queue(tx_queue);
/* Pass off to hardware */
- if (!skb->xmit_more || netif_xmit_stopped(tx_queue->core_txq))
+ if (!skb->xmit_more || netif_xmit_stopped(tx_queue->core_txq)) {
+ struct efx_tx_queue *txq2 = efx_tx_queue_partner(tx_queue);
+
+ /* There could be packets left on the partner queue if those
+ * SKBs had skb->xmit_more set. If we do not push those they
+ * could be left for a long time and cause a netdev watchdog.
+ */
+ if (txq2->xmit_more_available)
+ efx_nic_push_buffers(txq2);
+
efx_nic_push_buffers(tx_queue);
+ } else {
+ tx_queue->xmit_more_available = skb->xmit_more;
+ }
tx_queue->tx_packets++;
@@ -722,6 +734,7 @@ void efx_init_tx_queue(struct efx_tx_que
tx_queue->read_count = 0;
tx_queue->old_read_count = 0;
tx_queue->empty_read_count = 0 | EFX_EMPTY_COUNT_VALID;
+ tx_queue->xmit_more_available = false;
/* Set up TX descriptor ring */
efx_nic_init_tx(tx_queue);
@@ -747,6 +760,7 @@ void efx_fini_tx_queue(struct efx_tx_que
++tx_queue->read_count;
}
+ tx_queue->xmit_more_available = false;
netdev_tx_reset_queue(tx_queue->core_txq);
}
@@ -1302,8 +1316,20 @@ static int efx_enqueue_skb_tso(struct ef
efx_tx_maybe_stop_queue(tx_queue);
/* Pass off to hardware */
- if (!skb->xmit_more || netif_xmit_stopped(tx_queue->core_txq))
+ if (!skb->xmit_more || netif_xmit_stopped(tx_queue->core_txq)) {
+ struct efx_tx_queue *txq2 = efx_tx_queue_partner(tx_queue);
+
+ /* There could be packets left on the partner queue if those
+ * SKBs had skb->xmit_more set. If we do not push those they
+ * could be left for a long time and cause a netdev watchdog.
+ */
+ if (txq2->xmit_more_available)
+ efx_nic_push_buffers(txq2);
+
efx_nic_push_buffers(tx_queue);
+ } else {
+ tx_queue->xmit_more_available = skb->xmit_more;
+ }
tx_queue->tso_bursts++;
return NETDEV_TX_OK;
@@ -0,0 +1,96 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Eric Dumazet <edumazet@google.com>
Date: Mon, 2 Nov 2015 17:08:19 -0800
Subject: sit: fix sit0 percpu double allocations
From: Eric Dumazet <edumazet@google.com>
[ Upstream commit 4ece9009774596ee3df0acba65a324b7ea79387c ]
sit0 device allocates its percpu storage twice :
- One time in ipip6_tunnel_init()
- One time in ipip6_fb_tunnel_init()
Thus we leak 48 bytes per possible cpu per network namespace dismantle.
ipip6_fb_tunnel_init() can be much simpler and does not
return an error, and should be called after register_netdev()
Note that ipip6_tunnel_clone_6rd() also needs to be called
after register_netdev() (calling ipip6_tunnel_init())
Fixes: ebe084aafb7e ("sit: Use ipip6_tunnel_init as the ndo_init function.")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/ipv6/sit.c | 26 ++++----------------------
1 file changed, 4 insertions(+), 22 deletions(-)
--- a/net/ipv6/sit.c
+++ b/net/ipv6/sit.c
@@ -1394,34 +1394,20 @@ static int ipip6_tunnel_init(struct net_
return 0;
}
-static int __net_init ipip6_fb_tunnel_init(struct net_device *dev)
+static void __net_init ipip6_fb_tunnel_init(struct net_device *dev)
{
struct ip_tunnel *tunnel = netdev_priv(dev);
struct iphdr *iph = &tunnel->parms.iph;
struct net *net = dev_net(dev);
struct sit_net *sitn = net_generic(net, sit_net_id);
- tunnel->dev = dev;
- tunnel->net = dev_net(dev);
-
iph->version = 4;
iph->protocol = IPPROTO_IPV6;
iph->ihl = 5;
iph->ttl = 64;
- dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
- if (!dev->tstats)
- return -ENOMEM;
-
- tunnel->dst_cache = alloc_percpu(struct ip_tunnel_dst);
- if (!tunnel->dst_cache) {
- free_percpu(dev->tstats);
- return -ENOMEM;
- }
-
dev_hold(dev);
rcu_assign_pointer(sitn->tunnels_wc[0], tunnel);
- return 0;
}
static int ipip6_validate(struct nlattr *tb[], struct nlattr *data[])
@@ -1831,23 +1817,19 @@ static int __net_init sit_init_net(struc
*/
sitn->fb_tunnel_dev->features |= NETIF_F_NETNS_LOCAL;
- err = ipip6_fb_tunnel_init(sitn->fb_tunnel_dev);
- if (err)
- goto err_dev_free;
-
- ipip6_tunnel_clone_6rd(sitn->fb_tunnel_dev, sitn);
err = register_netdev(sitn->fb_tunnel_dev);
if (err)
goto err_reg_dev;
+ ipip6_tunnel_clone_6rd(sitn->fb_tunnel_dev, sitn);
+ ipip6_fb_tunnel_init(sitn->fb_tunnel_dev);
+
t = netdev_priv(sitn->fb_tunnel_dev);
strcpy(t->parms.name, sitn->fb_tunnel_dev->name);
return 0;
err_reg_dev:
- dev_put(sitn->fb_tunnel_dev);
-err_dev_free:
ipip6_dev_free(sitn->fb_tunnel_dev);
err_alloc_dev:
return err;
@@ -0,0 +1,39 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Phil Reid <preid@electromag.com.au>
Date: Fri, 30 Oct 2015 16:43:55 +0800
Subject: stmmac: Correctly report PTP capabilities.
From: Phil Reid <preid@electromag.com.au>
[ Upstream commit e6dbe1eb2db0d7a14991c06278dd3030c45fb825 ]
priv->hwts_*_en indicate if timestamping is enabled/disabled at run
time. But priv->dma_cap.time_stamp and priv->dma_cap.atime_stamp
indicates HW is support for PTPv1/PTPv2.
Signed-off-by: Phil Reid <preid@electromag.com.au>
Acked-by: Richard Cochran <richardcochran@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
@@ -721,10 +721,13 @@ static int stmmac_get_ts_info(struct net
{
struct stmmac_priv *priv = netdev_priv(dev);
- if ((priv->hwts_tx_en) && (priv->hwts_rx_en)) {
+ if ((priv->dma_cap.time_stamp || priv->dma_cap.atime_stamp)) {
- info->so_timestamping = SOF_TIMESTAMPING_TX_HARDWARE |
+ info->so_timestamping = SOF_TIMESTAMPING_TX_SOFTWARE |
+ SOF_TIMESTAMPING_TX_HARDWARE |
+ SOF_TIMESTAMPING_RX_SOFTWARE |
SOF_TIMESTAMPING_RX_HARDWARE |
+ SOF_TIMESTAMPING_SOFTWARE |
SOF_TIMESTAMPING_RAW_HARDWARE;
if (priv->ptp_clock)
@@ -0,0 +1,51 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Jon Paul Maloy <jon.maloy@ericsson.com>
Date: Wed, 28 Oct 2015 13:09:53 -0400
Subject: tipc: linearize arriving NAME_DISTR and LINK_PROTO buffers
From: Jon Paul Maloy <jon.maloy@ericsson.com>
[ Upstream commit 5cbb28a4bf65c7e4daa6c25b651fed8eb888c620 ]
Testing of the new UDP bearer has revealed that reception of
NAME_DISTRIBUTOR, LINK_PROTOCOL/RESET and LINK_PROTOCOL/ACTIVATE
message buffers is not prepared for the case that those may be
non-linear.
We now linearize all such buffers before they are delivered up to the
generic reception layer.
In order for the commit to apply cleanly to 'net' and 'stable', we do
the change in the function tipc_udp_recv() for now. Later, we will post
a commit to 'net-next' moving the linearization to generic code, in
tipc_named_rcv() and tipc_link_proto_rcv().
Fixes: commit d0f91938bede ("tipc: add ip/udp media type")
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/tipc/udp_media.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/net/tipc/udp_media.c
+++ b/net/tipc/udp_media.c
@@ -48,6 +48,7 @@
#include <linux/tipc_netlink.h>
#include "core.h"
#include "bearer.h"
+#include "msg.h"
/* IANA assigned UDP port */
#define UDP_PORT_DEFAULT 6118
@@ -222,6 +223,10 @@ static int tipc_udp_recv(struct sock *sk
{
struct udp_bearer *ub;
struct tipc_bearer *b;
+ int usr = msg_user(buf_msg(skb));
+
+ if ((usr == LINK_PROTOCOL) || (usr == NAME_DISTRIBUTOR))
+ skb_linearize(skb);
ub = rcu_dereference_sk_user_data(sk);
if (!ub) {
@@ -0,0 +1,41 @@
From foo@baz Tue Nov 17 14:33:46 PST 2015
From: Tobias Klauser <tklauser@distanz.ch>
Date: Wed, 4 Nov 2015 13:49:49 +0100
Subject: tun_dst: Fix potential NULL dereference
From: Tobias Klauser <tklauser@distanz.ch>
[ Upstream commit f63ce5b6fa5e9a0faf7a0e1ef2993a502878c78a ]
In tun_dst_unclone() the return value of skb_metadata_dst() is checked
for being NULL after it is dereferenced. Fix this by moving the
dereference after the NULL check.
Found by the Coverity scanner (CID 1338068).
Fixes: fc4099f17240 ("openvswitch: Fix egress tunnel info.")
Cc: Pravin B Shelar <pshelar@nicira.com>
Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
include/net/dst_metadata.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/include/net/dst_metadata.h
+++ b/include/net/dst_metadata.h
@@ -63,12 +63,13 @@ static inline struct metadata_dst *tun_r
static inline struct metadata_dst *tun_dst_unclone(struct sk_buff *skb)
{
struct metadata_dst *md_dst = skb_metadata_dst(skb);
- int md_size = md_dst->u.tun_info.options_len;
+ int md_size;
struct metadata_dst *new_md;
if (!md_dst)
return ERR_PTR(-EINVAL);
+ md_size = md_dst->u.tun_info.options_len;
new_md = metadata_dst_alloc(md_size, GFP_ATOMIC);
if (!new_md)
return ERR_PTR(-ENOMEM);
@@ -0,0 +1,34 @@
From f504ab1888026d15b5be8f9c262bf4ae9cacd177 Mon Sep 17 00:00:00 2001
From: Bjørn Mork <bjorn@mork.no>
Date: Thu, 22 Oct 2015 14:24:24 +0200
Subject: USB: qcserial: add Sierra Wireless MC74xx/EM74xx
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
From: Bjørn Mork <bjorn@mork.no>
commit f504ab1888026d15b5be8f9c262bf4ae9cacd177 upstream.
New device IDs shamelessly lifted from the vendor driver.
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Acked-by: Johan Hovold <johan@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/serial/qcserial.c | 2 ++
1 file changed, 2 insertions(+)
--- a/drivers/usb/serial/qcserial.c
+++ b/drivers/usb/serial/qcserial.c
@@ -153,6 +153,8 @@ static const struct usb_device_id id_tab
{DEVICE_SWI(0x1199, 0x9056)}, /* Sierra Wireless Modem */
{DEVICE_SWI(0x1199, 0x9060)}, /* Sierra Wireless Modem */
{DEVICE_SWI(0x1199, 0x9061)}, /* Sierra Wireless Modem */
+ {DEVICE_SWI(0x1199, 0x9070)}, /* Sierra Wireless MC74xx/EM74xx */
+ {DEVICE_SWI(0x1199, 0x9071)}, /* Sierra Wireless MC74xx/EM74xx */
{DEVICE_SWI(0x413c, 0x81a2)}, /* Dell Wireless 5806 Gobi(TM) 4G LTE Mobile Broadband Card */
{DEVICE_SWI(0x413c, 0x81a3)}, /* Dell Wireless 5570 HSPA+ (42Mbps) Mobile Broadband Card */
{DEVICE_SWI(0x413c, 0x81a4)}, /* Dell Wireless 5570e HSPA+ (42Mbps) Mobile Broadband Card */
@@ -1,45 +0,0 @@
From a42fb351ca1f340f8307468be765e3f77ddedda9 Mon Sep 17 00:00:00 2001
From: Knuth Posern <knuth@posern.org>
Date: Sun, 20 Sep 2015 21:25:22 +0200
Subject: [PATCH] thunderbolt: Allow loading of module on recent Apple MacBooks
with thunderbolt 2 controller
The pci device ids listed in the thunderbolt driver are to restrictive,
which prevents the driver from being loaded on recent Apple MacBooks
using a thunderbolt 2 controller. In particular this prevented any
hot-plugging functionality for thunderbolt based ethernet dongles
(i.e. Apples thunderbolt gigabit ethernet broadcom tg3 based dongle
Model A1433 EMC 2590).
Changing the subvendor and subdevice to PCI_ANY_ID the thunderbolt driver
loads and binds to the pci device 07:00.0 System peripheral:
Intel Corporation Device 156c which is the thunderbolt 2 controller on
the MacBookPro12,1.
Successfully tested on MacBookPro12,1. With the patch the thunderbolt
module gets now loaded on boot. And it provides hot-plugging support both
for a cold-plugged and a warm-plugged ethernet dongle.
Signed-off-by: Andreas Noever <andreas.noever@gmail.com>
Acked-by: Knuth Posern <knuth@posern.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/thunderbolt/nhi.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c
index c68fe12..20a41f7 100644
--- a/drivers/thunderbolt/nhi.c
+++ b/drivers/thunderbolt/nhi.c
@@ -643,7 +643,7 @@ static struct pci_device_id nhi_ids[] = {
{
.class = PCI_CLASS_SYSTEM_OTHER << 8, .class_mask = ~0,
.vendor = PCI_VENDOR_ID_INTEL, .device = 0x156c,
- .subvendor = 0x2222, .subdevice = 0x1111,
+ .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID,
},
{ 0,}
};
--
2.6.0
+39 -11
View File
@@ -12,7 +12,7 @@
<IsA>kernel</IsA>
<Summary>The Linux kernel (the core of the Linux operating system) for Pisi Linux</Summary>
<Description>kernel contains the Linux kernel, the core of any Linux operating system. The kernel handles the basic functions of the operating system: memory allocation, process allocation, device input and output, etc.</Description>
<Archive sha1sum="70db3c22960e3da16b7d7b0a55066154b8d92900" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.2.tar.gz</Archive>
<Archive sha1sum="309d9bedd8c9ef4a79695f04dcf65c0b551d784c" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz</Archive>
<AdditionalFiles>
<AdditionalFile target="configs/kernel-i686-config">configs/kernel-i686-config</AdditionalFile>
<AdditionalFile target="configs/kernel-x86_64-config">configs/kernel-x86_64-config</AdditionalFile>
@@ -28,10 +28,28 @@
</BuildDependencies>
<Patches>
<!-- Linux patches -->
<Patch level="1" compressionType="xz">patches/linux/patch-4.2.6.xz</Patch>
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.2.6/1.mga6/PATCHES/patches/series-->
<!--Patch level="1" compressionType="xz">patches/linux/patch-4.2.6.xz</Patch-->
<!-- Mageia Linux patches // compatible with http://svnweb.mageia.org/packages/cauldron/kernel/releases/4.3.0/2.mga6/PATCHES/patches/series-->
<!--stable patches-->
<Patch level="1">patches/mageia/stable-arm-8449-1-fix-bug-in-vdsomunge-swab32-macro.patch</Patch>
<Patch level="1">patches/mageia/stable-usb-qcserial-add-sierra-wireless-mc74xx-em74xx.patch</Patch>
<Patch level="1">patches/mageia/stable-tipc-linearize-arriving-name_distr-and-link_proto-buffers.patch</Patch>
<Patch level="1">patches/mageia/stable-net-bcmgenet-software-reset-ephy-after-power-on.patch</Patch>
<Patch level="1">patches/mageia/stable-ipv4-fix-to-not-remove-local-route-on-link-down.patch</Patch>
<Patch level="1">patches/mageia/stable-ipv4-update-rtnh_f_linkdown-flag-on-up-event.patch</Patch>
<Patch level="1">patches/mageia/stable-stmmac-correctly-report-ptp-capabilities.patch</Patch>
<Patch level="1">patches/mageia/stable-ipmr-fix-possible-race-resulting-from-improper-usage-of-ip_inc_stats_bh-in-preemptible-context.patch</Patch>
<Patch level="1">patches/mageia/stable-qmi_wwan-fix-entry-for-hp-lt4112-lte-hspa-gobi-4g-module.patch</Patch>
<Patch level="1">patches/mageia/stable-sit-fix-sit0-percpu-double-allocations.patch</Patch>
<Patch level="1">patches/mageia/stable-sfc-push-partner-queue-for-skb-xmit_more.patch</Patch>
<Patch level="1">patches/mageia/stable-net-avoid-null-deref-in-inet_ctl_sock_destroy.patch</Patch>
<Patch level="1">patches/mageia/stable-ipv6-clean-up-dev_snmp6-proc-entry-when-we-fail-to-initialize-inet6_dev.patch</Patch>
<Patch level="1">patches/mageia/stable-ipv4-disable-bh-when-changing-ip-local-port-range.patch</Patch>
<Patch level="1">patches/mageia/stable-net-fix-prefsrc-lookups.patch</Patch>
<Patch level="1">patches/mageia/stable-tun_dst-fix-potential-null-dereference.patch</Patch>
<Patch level="1">patches/mageia/stable-packet-race-condition-in-packet_bind.patch</Patch>
<Patch level="1">patches/mageia/stable-bonding-fix-panic-on-non-arphrd_ether-enslave-failure.patch</Patch>
<Patch level="1">patches/mageia/stable-net-fix-a-race-in-dst_release.patch</Patch>
<!--other patches-->
<Patch level="1">patches/mageia/x86-pci-toshiba-equium-a60-assign-busses.patch</Patch>
<Patch level="1">patches/mageia/x86-boot-video-80x25-if-break.patch</Patch>
@@ -40,11 +58,15 @@
<Patch level="1">patches/mageia/Revert-cpufreq-pcc-Enable-autoload-of-pcc-cpufreq-fo.patch</Patch>
<Patch level="1">patches/mageia/x86-KVM-x86-work-around-infinite-loop-in-microcode-when-AC-is-delivered.patch</Patch>
<Patch level="1">patches/mageia/x86-KVM-svm-unconditionally-intercept-DB.patch</Patch>
<Patch level="1">patches/mageia/Revert-x86-efi-Request-desired-alignment-via-the-PE-.patch</Patch>
<Patch level="1">patches/mageia/Revert-x86-mm-mtrr-Remove-kernel-internal-MTRR-inter.patch</Patch>
<Patch level="1">patches/mageia/base-cacheinfo-silence-DT-warnings.patch</Patch>
<Patch level="1">patches/mageia/pci-add-ALI-M5229-ide-compatibility-mode-quirk.patch</Patch>
<Patch level="1">patches/mageia/pci-quirks-drop-devinit-exit.patch</Patch>
<Patch level="1">patches/mageia/acpi-CLEVO-M360S-disable_acpi_irq.patch</Patch>
<Patch level="1">patches/mageia/acpi-processor-M720SR-limit-to-C2.patch</Patch>
<Patch level="1">patches/mageia/ACPI-video-Add-a-quirk-to-force-acpi-video-backlight.patch</Patch>
<Patch level="1">patches/mageia/ACPI-video-Add-a-quirk-to-force-native-backlight-on-.patch</Patch>
<!--Patch level="1">patches/mageia/scsi-ppscsi-2.6.2.patch</Patch>
<Patch level="1">patches/mageia/scsi-ppscsi_fixes.patch</Patch>
<Patch level="1">patches/mageia/scsi-ppscsi-sg-helper-update.patch</Patch>
@@ -58,8 +80,8 @@
<Patch level="1">patches/mageia/block-floppy-disable-pnp-modalias.patch</Patch>
<Patch level="1">patches/mageia/ata-prefer-ata-drivers-over-ide-drivers-when-both-are-built.patch</Patch>
<Patch level="1">patches/mageia/block-Make-CFQ-default-to-IOPS-mode-on-SSDs.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs4.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs4-modular.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs-4.3.patch</Patch>
<Patch level="1">patches/mageia/fs-aufs-4.3-modular.patch</Patch>
<Patch level="1">patches/mageia/firewire-ieee1394-module-aliases.patch</Patch>
<Patch level="1">patches/mageia/char-agp-intel-new-Q57-id.patch</Patch>
<Patch level="1">patches/mageia/gpu-drm-mach64.patch</Patch>
@@ -99,7 +121,6 @@
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-drop-devinit-exit.patch</Patch>
<Patch level="1">patches/mageia/platform-x86-shuttle-wmi-4.2-buildfix.patch</Patch>
<Patch level="1">patches/mageia/include-kbuild-export-pci_ids.patch</Patch>
<Patch level="1">patches/mageia/thunderbolt-Allow-loading-of-module-on-recent-Apple-.patch</Patch>
<Patch level="1">patches/mageia/hid-usbhid-IBM-BladeCenterHS20-quirk.patch</Patch>
<Patch level="1">patches/mageia/usb-storage-unusual_devs-add-id.patch</Patch>
<Patch level="1">patches/mageia/usb-storage-unusual_devs-add-id-2.6.37-buildfix.patch</Patch>
@@ -131,11 +152,10 @@
<Patch level="1">patches/mageia/3rd-viahss-2.6.35-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-viahss-3.0-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-rtl8723bs.patch</Patch>
<Patch level="1">patches/mageia/3rd-rtl8723bs-buildfix.patch</Patch>
<Patch level="1">patches/mageia/3rd-rtl8723bs-updates.patch</Patch>
<Patch level="1">patches/mageia/3rd-rtl8723bs-4.2-buildfix.patch</Patch>
<Patch level="1">patches/mageia/scsi-Fix-NULL-pointer-dereference-in-RTPM-of-block-layer.patch</Patch>
<Patch level="1">patches/mageia/scsi-Revert-SCSI-Fix-NULL-pointer-dereference-in-runtime-PM.patch</Patch>
<Patch level="1">patches/mageia/ahci-Add-Marvell-88se91a2-device-id.patch</Patch>
<Patch level="1">patches/mageia/ahci-add-new-Intel-device-IDs.patch</Patch>
</Patches>
</Source>
@@ -189,7 +209,15 @@
</Files>
</Package>
<History>
<History>
<Update release="67">
<Date>2015-12-01</Date>
<Version>4.3.0</Version>
<Comment>Version bump to 4.3.0</Comment>
<Type package="kernel">security</Type>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="66">
<Date>2015-11-11</Date>
<Version>4.2.6</Version>
+9 -2
View File
@@ -12,13 +12,13 @@
<IsA>app:console</IsA>
<Summary>CPU power management tools</Summary>
<Description>cpupowertools contains utilities to manage power management and frequency scaling policies of modern CPUs.</Description>
<Archive sha1sum="70db3c22960e3da16b7d7b0a55066154b8d92900" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.2.tar.gz</Archive>
<Archive sha1sum="309d9bedd8c9ef4a79695f04dcf65c0b551d784c" type="targz">https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.3.tar.gz</Archive>
<BuildDependencies>
<Dependency>pciutils-devel</Dependency>
</BuildDependencies>
<Patches>
<!-- Linux patches -->
<Patch level="1" compressionType="xz">patches/linux/patch-4.2.6.xz</Patch>
<!--Patch level="1" compressionType="xz">patches/linux/patch-4.2.6.xz</Patch-->
</Patches>
</Source>
@@ -44,6 +44,13 @@
</Provides>-->
</Package>
<History>
<Update release="66">
<Date>2015-12-01</Date>
<Version>4.3.0</Version>
<Comment>Version bump.</Comment>
<Name>Ertuğrul Erata</Name>
<Email>ertugrulerata@gmail.com</Email>
</Update>
<Update release="65">
<Date>2015-11-11</Date>
<Version>4.2.6</Version>