Merge changes from sid up to 3.16.7-ckt4-1

svn path=/dists/trunk/linux/; revision=22265
This commit is contained in:
Ben Hutchings 2015-01-16 02:43:15 +00:00
commit 10f7943320
32 changed files with 1092 additions and 104 deletions

View File

@ -68,9 +68,9 @@ class Main(object):
self.version = changelog.version.linux_version
self.version_source = changelog.version.complete
local_config = ConfigCoreDump(fp=open("debian/config.defines.dump", "rb"))
self.config = ConfigCoreDump(fp=open("debian/config.defines.dump", "rb"))
self.version_abi = local_config['version', ]['abiname']
self.version_abi = self.config['version', ]['abiname']
def __call__(self):
self.dir = tempfile.mkdtemp(prefix='abiupdate')
@ -99,13 +99,18 @@ class Main(object):
return base_out
def get_abi(self, arch, prefix):
filename = "linux-headers-%s-%s_%s_%s.deb" % (self.version_abi, prefix, self.version_source, arch)
try:
version_abi = (self.config['version',]['abiname_base'] + '-' +
self.config['abi', arch]['abiname'])
except KeyError:
version_abi = self.version_abi
filename = "linux-headers-%s-%s_%s_%s.deb" % (version_abi, prefix, self.version_source, arch)
f = self.retrieve_package(self.url, filename, arch)
d = self.extract_package(f, "linux-headers-%s_%s" % (prefix, arch))
f1 = d + "/usr/src/linux-headers-%s-%s/Module.symvers" % (self.version_abi, prefix)
f1 = d + "/usr/src/linux-headers-%s-%s/Module.symvers" % (version_abi, prefix)
s = Symbols(open(f1))
shutil.rmtree(d)
return s
return version_abi, s
def get_config(self):
filename = "linux-support-%s_%s_all.deb" % (self.version_abi, self.version_source)
@ -129,8 +134,8 @@ class Main(object):
f_out.write(r)
return filename_out
def save_abi(self, symbols, arch, featureset, flavour):
dir = "debian/abi/%s" % self.version_abi
def save_abi(self, version_abi, symbols, arch, featureset, flavour):
dir = "debian/abi/%s" % version_abi
if not os.path.exists(dir):
os.makedirs(dir)
out = "%s/%s_%s_%s" % (dir, arch, featureset, flavour)
@ -170,8 +175,8 @@ class Main(object):
else:
localversion = featureset + '-' + flavour
abi = self.get_abi(arch, localversion)
self.save_abi(abi, arch, featureset, flavour)
version_abi, abi = self.get_abi(arch, localversion)
self.save_abi(version_abi, abi, arch, featureset, flavour)
self.log("Ok.\n")
except HTTPError as e:
self.log("Failed to retrieve %s: %s\n" % (e.filename, e))

View File

@ -45,13 +45,11 @@ class CheckAbi(object):
self.filename_new = "%s/Module.symvers" % dir
upstream_version = self.config['version',]['upstream']
try:
version_abi = (upstream_version + '-' +
version_abi = (self.config['version',]['abiname_base'] + '-' +
self.config['abi', arch]['abiname'])
except KeyError:
version_abi = (upstream_version + '-' +
self.config['abi', ]['abiname'])
version_abi = self.config['version',]['abiname']
self.filename_ref = "debian/abi/%s/%s_%s_%s" % (version_abi, arch, featureset, flavour)
def __call__(self, out):
@ -175,6 +173,8 @@ class CheckImage(object):
self.dir = dir
self.arch, self.featureset, self.flavour = arch, featureset, flavour
self.changelog = Changelog(version=VersionLinux)[0]
self.config_entry_base = config.merge('base', arch, featureset, flavour)
self.config_entry_build = config.merge('build', arch, featureset, flavour)
self.config_entry_image = config.merge('image', arch, featureset, flavour)
@ -214,7 +214,20 @@ class CheckImage(object):
out.write('Image too large (%d > %d)! Refusing to continue.\n' % (size, value))
return 1
out.write('Image fits (%d <= %d). Continuing.\n' % (size, value))
# 1% overhead is desirable in order to cope with growth
# through the lifetime of a stable release. Warn if this is
# not the case.
usage = (float(size)/value) * 100.0
out.write('Image size %d/%d, using %.2f%%. ' % (size, value, usage))
if size > value:
sys.write('Too large. Refusing to continue.\n')
return 1
elif usage >= 99.0:
out.write('Under 1%% space in %s. ' % self.changelog.distribution)
else:
out.write('Image fits. ')
out.write('Continuing.\n')
return 0

View File

@ -479,6 +479,7 @@ class Gencontrol(Base):
}
self.config['version', ] = {'source': self.version.complete,
'upstream': self.version.linux_upstream,
'abiname_base': self.abiname_version,
'abiname': (self.abiname_version +
self.abiname_part)}

303
debian/changelog vendored
View File

@ -112,6 +112,309 @@ linux (3.17~rc5-1~exp1) experimental; urgency=medium
-- maximilian attems <maks@debian.org> Thu, 18 Sep 2014 23:50:00 +0200
linux (3.16.7-ckt4-1) unstable; urgency=medium
* New upstream stable update:
http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt3
- [x86] kvm: use alternatives for VMCALL vs. VMMCALL if kernel text is
read-only
- [sparc*] Fix constraints on swab helpers.
- inetdevice: fixed signed integer overflow
- ieee802154: fix error handling in ieee802154fake_probe()
- bonding: fix curr_active_slave/carrier with loadbalance arp monitoring
(regression in 3.14)
- pptp: fix stack info leak in pptp_getname()
- ipx: fix locking regression in ipx_sendmsg and ipx_recvmsg
- net/mlx4_en: Add VXLAN ndo calls to the PF net device ops too
(regression in 3.15)
- net/mlx4_en: Advertize encapsulation offloads features only when VXLAN
tunnel is set (regression in 3.15)
- target: Don't call TFO->write_pending if data_length == 0
- vhost-scsi: Take configfs group dependency during VHOST_SCSI_SET_ENDPOINT
- iser-target: Handle DEVICE_REMOVAL event on network portal listener
correctly
- ASoC: dpcm: Fix race between FE/BE updates and trigger
- mac80211: Fix regression that triggers a kernel BUG with CCMP
(regression in 3.13)
- rt2x00: do not align payload on modern H/W
- bitops: Fix shift overflow in GENMASK macros
- [x86] Require exact match for 'noxsave' command line option
- [x86] drm/i915: Kick fbdev before vgacon (regression in 3.16)
- can: dev: avoid calling kfree_skb() from interrupt context
- [x86] mm: Set NX across entire PMD at boot
- of: Fix crash if an earlycon driver is not found
- btrfs: fix lockups from btrfs_clear_path_blocking
- [i386/686-pae,armhf/armmp-lpae] PCI: Support 64-bit bridge windows if we
have 64-bit dma_addr_t (regression in 3.14)
- ACPI / PM: Ignore wakeup setting if the ACPI companion can't wake up
(regression in 3.13)
- drm/radeon: fix endian swapping in vbios fetch for tdp table
- Bluetooth: Fix endian and alignment issue with ath3k version handling
- nfs: Don't busy-wait on SIGKILL in __nfs_iocounter_wait
- [armhf] 8109/1: mm: Modify pte_write and pmd_write logic for LPAE
- aio: fix incorrect dirty pages accouting when truncating AIO ring buffer
(regression in 3.12)
- [armel,armhf] mvebu: add missing of_node_put() call in coherency.c
(regression in 3.16)
- iio: Fix IIO_EVENT_CODE_EXTRACT_DIR bit mask
- spi: Fix mapping from vmalloc-ed buffer to scatter list
- SUNRPC: Fix locking around callback channel reply receive
- nfsd: Fix slot wake up race in the nfsv4.1 callback code
- bnx2fc: do not add shared skbs to the fcoe_rx_list
- Revert "xhci: clear root port wake on bits if controller isn't wake-up
capable" (regression in 3.16)
- usb: xhci: rework root port wake bits if controller isn't allowed to
wakeup
- ixgbe: Correctly disable VLAN filter in promiscuous mode
(regression in 3.16)
- ixgbe: fix use after free adapter->state test in ixgbe_remove/ixgbe_probe
(regression in 3.15)
- ALSA: hda - Limit 40bit DMA for AMD HDMI controllers
- PCI/MSI: Add device flag indicating that 64-bit MSIs don't work
- gpu/radeon: Set flag to indicate broken 64-bit MSI
- sound/radeon: Move 64-bit MSI quirk from arch to driver
- [powerpc*] pseries: Honor the generic "no_64bit_msi" flag
- [mips*] fix EVA & non-SMP non-FPU FP context signal handling
(regression in 3.15)
- [x86] drm/i915: Ignore SURFLIVE and flip counter when the GPU gets reset
(regression in 3.16)
- [powerpc*] 32 bit getcpu VDSO function uses 64 bit instructions
- [armhf] 8222/1: mvebu: enable strex backoff delay
- [armel,armhf] 8226/1: cacheflush: get rid of restarting block
- btrfs: zero out left over bytes after processing compression streams
- [armhf] net: sun4i-emac: fix memory leak on bad packet
- [armhf] i2c: omap: fix NACK and Arbitration Lost irq handling
- [media] s2255drv: fix payload size for JPG, MJPEG (regression in 3.15)
- nouveau: move the hotplug ignore to correct place. (regression in 3.16.4)
- mm: frontswap: invalidate expired data on a dup-store failure
- mm/vmpressure.c: fix race in vmpressure_work_fn()
- xen-netfront: Remove BUGs on paged skb data which crosses a page boundary
- drivers/input/evdev.c: don't kfree() a vmalloc address
(regression in 3.13)
- mm: fix anon_vma_clone() error treatment (regression in 3.12)
- ip_tunnel: the lack of vti_link_ops' dellink() cause kernel panic
- vxlan: Fix race condition between vxlan_sock_add and vxlan_sock_release
- bond: Check length of IFLA_BOND_ARP_IP_TARGET attributes
- gre: Set inner mac header in gro complete (regression in 3.16.7-ckt1)
- [mips*] bpf: Fix broken BPF_MOD
http://kernel.ubuntu.com/stable/ChangeLog-3.16.7-ckt4
- [x86] drm/i915: don't warn if backlight unexpectedly enabled
(Closes: #757805)
- [x86] drm/i915/dp: only use training pattern 3 on platforms that
support it (regression in 3.15)
- btrfs: don't go readonly on existing qgroup items
- writeback: fix a subtle race condition in I_DIRTY clearing
- [s390*] KVM: flush CPU on load control
- UBI: Fix double free after do_sync_erase()
- [x86] Drivers: hv: util: make struct hv_do_fcopy match Hyper-V host
messages (regression for amd64 in 3.16.7)
- Drivers: hv: vmbus: Fix a race condition when unregistering a device
- misc: genwqe: check for error from get_user_pages_fast()
- drbd: merge_bvec_fn: properly remap bvm->bi_bdev
- PCI: Restore detection of read-only BARs
- scsi: correct return values for .eh_abort_handler implementations
- genhd: check for int overflow in disk_expand_part_tbl()
- Btrfs: make sure we wait on logged extents when fsycning two subvols
- Btrfs: make sure logged extents complete in the current transaction V3
- Btrfs: do not move em to modified list when unpinning
- [armhf] mvebu: disable I/O coherency on non-SMP situations on
Armada 370/375/38x/XP
- nfs41: fix nfs4_proc_layoutget error handling
- USB: cdc-acm: check for valid interfaces
- HID: i2c-hid: fix race condition reading reports
- [armhf] mfd: twl4030-power: Fix regression with missing compatible flag
(regression in 3.16)
- [armhf] serial: samsung: wait for transfer completion before clock
disable
- n_tty: Fix read_buf race condition, increment read_head after pushing
data (regression in 3.12)
- dm cache: only use overwrite optimisation for promotion when in
writeback mode
- dm cache: dirty flag was mistakenly being cleared when promoting via
overwrite
- dm bufio: fix memleak when using a dm_buffer's inline bio
- iwlwifi: dvm: fix flush support for old firmware (regression in
3.16.7-ckt1)
- iwlwifi: mvm: update values for Smart Fifo (regression in 3.14)
- iommu/vt-d: Fix an off-by-one bug in __domain_mapping()
- dm crypt: use memzero_explicit for on-stack buffer
- mnt: Implicitly add MNT_NODEV on remount when it was implicitly added by
mount (regression in 3.16.3)
- umount: Disallow unprivileged mount force
- md/raid5: fetch_block must fetch all the blocks handle_stripe_dirtying
wants.
- [x86] drm/i915: Only warn the first time we attempt to mmio whilst
suspended (regression in 3.15)
- drm/vmwgfx: Fix error printout on signals pending
- drm/radeon: check the right ring in radeon_evict_flags()
- swiotlb-xen: pass dev_addr to xen_dma_unmap_page and
xen_dma_sync_single_for_cpu
- [armhf/armmp] swiotlb-xen: remove BUG_ON in xen_bus_to_phys
- swiotlb-xen: call xen_dma_sync_single_for_device when appropriate
- swiotlb-xen: pass dev_addr to swiotlb_tbl_unmap_single
- [powerpc] book3s: Fix partial invalidation of TLBs in MCE code.
- [armhf] clocksource: arch_timer: Fix code to use physical timers when
requested (regression in 3.11)
- userns: Prevent evasion of group negative permissions through a userns
(CVE-2014-8989):
+ Don't allow setgroups until a gid mapping has been setablished
+ Don't allow unprivileged creation of gid mappings
+ Add a knob to disable setgroups on a per user namespace basis
+ Allow setting gid_maps without privilege when setgroups is disabled
- KEYS: Fix stale key registration at error path
- blk-mq: Fix a use-after-free
- blk-mq: Fix a race between bt_clear_tag() and bt_get()
- nfsd4: fix xdr4 count of server in fs_location4 (regression in 3.16)
- [x86] drm/i915: Don't complain about stolen conflicts on gen3
(regression in 3.12)
- [x86] kvm: Clear paravirt_enabled on KVM guests for espfix32's benefit
(CVE-2014-8134)
- blk-mq: Fix uninitialized kobject at CPU hotplugging
- ncpfs: return proper error from NCP_IOC_SETROOT ioctl
- [armhf] rtc: omap: fix clock-source configuration (regression in 3.16)
- exit: pidns: alloc_pid() leaks pid_namespace if child_reaper is exiting
- [amd64] switch_to(): Load TLS descriptors before switching DS and ES
(CVE-2014-9419)
- [x86] KVM: nVMX: Disable unrestricted mode if ept=0 (regression in 3.13)
- [x86] KVM: em_ret_far overrides cpl (follow-up to CVE-2014-3647 fix)
- pstore-ram: Fix hangs by using write-combine mappings
- HID: i2c-hid: prevent buffer overflow in early IRQ
- mac80211: fix multicast LED blinking and counter (regression in
3.16.7-ckt2)
- cfg80211: avoid mem leak on driver hint set
- nl80211: check matches array length before acessing it
- cfg80211: don't WARN about two consecutive Country IE hint
(regression in 3.14)
- tracing/sched: Check preempt_count() for current when reading task->state
(regression in 3.13)
- [x86] tls: Validate TLS entries to protect espfix (CVE-2014-8133)
- [x86] tls: Disallow unusual TLS segments
- isofs: Fix infinite looping over CE entries (CVE-2014-9420)
- mac80211: free management frame keys when removing station
- ceph: do_sync is never initialized (regression in 3.12)
- mnt: Fix a memory stomp in umount (regression in 3.14)
- ocfs2: fix journal commit deadlock
- md/bitmap: always wait for writes on unplug.
- [armhf] mmc: omap_hsmmc: Fix UHS card with DDR50 support (regression in
3.16)
- [x86] mmc: sdhci-pci-o2micro: Fix Dell E5440 issue (regression in 3.14)
- dm space map metadata: fix sm_bootstrap_get_nr_blocks()
- dm thin: fix a race in thin_dtr
- eCryptfs: Force RO mount when encrypted view is enabled
- eCryptfs: Remove buggy and unnecessary write in file name decode routine
- tcm_loop: Fix wrong I_T nexus association
- Btrfs: fix fs corruption on transaction abort if device supports discard
- [x86] perf/intel/uncore: Make sure only uncore events are collected
- perf: Fix events installation during moving group
- iscsi,iser-target: Initiate termination only once (regression in 3.16.4)
- iser-target: Fix flush + disconnect completion handling
- iser-target: Parallelize CM connection establishment
- iser-target: Fix connected_handler + teardown flow race
- iser-target: Handle ADDR_CHANGE event for listener cm_id
- iser-target: Fix implicit termination of connections
- iser-target: Allocate PI contexts dynamically
- iser-target: Fix NULL dereference in SW mode DIF
- iscsi,iser-target: Expose supported protection ops according to t10_pi
- genirq: Prevent proc race against freeing of irq descriptors
- [powerpc] powernv: Switch off MMU before entering nap/sleep/rvwinkle mode
- [x86] storvsc: ring buffer failures may result in I/O freeze
- iscsi-target: Fail connection on short sendmsg writes
- [x86] drm/i915: Invalidate media caches on gen7
- [x86] drm/i915: Force the CS stall for invalidate flushes
- dm thin: fix inability to discard blocks when in out-of-data-space mode
- dm thin: fix missing out-of-data-space to write mode transition if blocks
are released
- dm: fix missed error code if .end_io isn't implemented by target_type
- [armhf] i2c: mv64xxx: rework offload support to fix several problems
(regression in 3.12)
- [x86] tls: Don't validate lm in set_thread_area() after all
- ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC
- tick/powerclamp: Remove tick_nohz_idle abuse
- audit: don't attempt to lookup PIDs when changing PID filtering audit
rules (regression in 3.15)
- audit: use supplied gfp_mask from audit_buffer in
kauditd_send_multicast_skb (regression in 3.16)
- [arm64] kernel: fix __cpu_suspend mm switch on warm-boot
- audit: restore AUDIT_LOGINUID unset ABI (regression in 3.10)
- Btrfs: fix loop writing of async reclaim
- isofs: Fix unchecked printing of ER records (CVE-2014-9584)
- crypto: af_alg - fix backlog handling
- udf: Check path length when reading symlink
- udf: Verify i_size when loading inode
- udf: Verify symlink size before loading it
- udf: Check component length before reading it
- [x86] platform/chrome: chromeos_laptop - Add support for Acer C720
(Closes: #774209)
- batman-adv: Calculate extra tail size based on queued fragments
(Closes: #774155) (CVE-2014-9428)
- vfs: move d_rcu from overlapping d_child to overlapping d_alias
- vfs: deal with deadlock in d_walk() (CVE-2014-8559)
- KEYS: close race between key lookup and freeing (CVE-2014-9529)
[ Ben Hutchings ]
* [sh4] Build with gcc-4.8 (Closes: #772602)
* Fix inconsistent ABI name generation in
debian/bin/{abiupdate,buildcheck,gencontrol}.py (Closes: #773233)
* iov: Revert unwanted ABI 'fix' in 3.16.7-ckt2-1
* [armel,armhf] thread_info: Fix ABI change in 3.16.7-ckt3
* PCI: Fix ABI change in 3.16.7-ckt3
* Ignore some ABI changes that don't appear to affect OOT modules:
- Removal of __add_pages(), __remove_pages(), of_device_is_stdout_path(),
clk_divider_ro_ops, tick_nohz_idle_enter, tick_nohz_idle_exit
- Changes to ASoC functions
* [arm64] Enable PSTORE as built-in and EFI_VARS_PSTORE as module;
ensure efivars and efi-pstore are loaded on EFI systems (Closes: #773309)
* hwmon: Enable SENSORS_NCT6683 as module (Closes: #774372)
* udeb: Add i2c-designware-{core,platform} to i2c-modules and i2c-hid to
input-modules (Closes: #772578)
* [x86] ACPI / video: Run _BCL before deciding registering backlight
(regression in 3.16) (Closes: #762285)
* [amd64] Enable EFI_MIXED to support Bay Trail systems
* efi: Expose underlying UEFI firmware platform size to userland, to
support installation on Bay Trail systems (Closes: #775191)
* vfs: Changes for compatibility with CVE-2014-8559 fix:
- aufs: move d_rcu from overlapping d_child to overlapping d_alias
- vfs: Avoid ABI change for dentry union changes
* [powerpc/powerpc{,-smp}] video/fb: Change FB_RADEON back to module
(Closes: #748398) (thanks to John Paul Adrian Glaubitz for thoroughly
testing this change)
* userns: Fix ABI change in 3.16.7-ckt4
* netfilter: conntrack: disable generic tracking for known protocols
(CVE-2014-8160)
* [amd64] vdso: Fix the vdso address randomization algorithm (CVE-2014-9585)
[ Ian Campbell ]
* [armhf] Enable support for support OMAP5432 uEVM by enabling:
TI_SOC_THERMAL, MFD_PALMAS, REGULATOR_PALMAS, REGULATOR_PBIAS,
REGULATOR_TI_ABB, PINCTRL_PALMAS, GPIO_PALMAS, RTC_DRV_PALMAS,
OMAP5_DSS_HDMI, DISPLAY_ENCODER_TPD12S015, DISPLAY_CONNECTOR_HDMI,
USB_DWC3_OMAP, EXTCON_PALMAS, TI_EMIF and DDR.
Based on a patch from Chen Baozi (Closes: #772953)
* [armel] Change configuration to reduce kernel image size
- Warn if image size leaves less than 1% spare capacity in the flash. This
allows some slack for growth over the lifetime of a stable release.
- [/kirkwood] Disable RD_LZO and RD_LZ4
- [/kirkwood] mm: Disable KSM
- [/kirkwood] Disable CHECKPOINT_RESTORE
- [/kirkwood] Disable ZSMALLOC
- [/kirkwood] Disable CRYPTO_FIPS
- [/kirkwood] Disable NET_MPLS_GSO
- [/kirkwood] Disable NETLINK_MMAP
- [/kirkwood] Disable PROFILING
- [/kirkwood] Disable BPF_JIT
- [/kirkwood] Disable KPROBES
- [/ixp4xx,orion5x]: Disable RD_LZO
- [/ixp4xx,orion5x]: Disable PROFILING
- [/orion5x]: Make SERIO and dependants modular
* [arhmf] Add device-tree for LinkSprite pcDuino V3. Patch from Karsten
Merker (Closes: #774067)
* [xen] More netback fixes (including reintroducing support for
feature-rx-notify, which was regressed by the fix to #767261).
* Disable TSO in mv643xx_eth driver by default again, since previous fix
appears to not work on all platforms (Closes: #764162).
-- Ben Hutchings <ben@decadent.org.uk> Fri, 16 Jan 2015 00:15:12 +0000
linux (3.16.7-ckt2-1) unstable; urgency=high
* New upstream stable update:

View File

@ -126,3 +126,8 @@ CONFIG_USB_OHCI_HCD_PLATFORM=m
##
CONFIG_VIRTIO_MMIO=m
##
## file: fs/pstore/Kconfig
##
CONFIG_PSTORE=y

View File

@ -51,3 +51,8 @@ CONFIG_IPV6=m
##
# CONFIG_NETLINK_MMAP is not set
##
## file: usr/Kconfig
##
# CONFIG_RD_LZO is not set
# CONFIG_RD_LZ4 is not set

View File

@ -1,3 +1,8 @@
##
## file: arch/Kconfig
##
# CONFIG_KPROBES is not set
##
## file: arch/arm/Kconfig
##
@ -615,6 +620,13 @@ CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
## end choice
# CONFIG_ZSMALLOC is not set
##
## file: net/Kconfig
##
#. Saves about 3K
# CONFIG_BPF_JIT is not set
##
## file: net/atm/Kconfig

View File

@ -491,6 +491,15 @@ CONFIG_RTC_DRV_S35390A=y
#. Selects PM_DEVFREQ, which will add some built-in code
# CONFIG_SCSI_UFSHCD is not set
##
## file: drivers/input/serio/Kconfig
##
CONFIG_SERIO=m
CONFIG_SERIO_SERPORT=m
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=m
# CONFIG_SERIO_RAW is not set
##
## file: drivers/ssb/Kconfig
##

View File

@ -197,6 +197,7 @@ CONFIG_GPIO_GENERIC_PLATFORM=m
CONFIG_GPIO_PCA953X=m
CONFIG_GPIO_TWL4030=y
CONFIG_GPIO_TWL6040=y
CONFIG_GPIO_PALMAS=y
##
## file: drivers/gpu/drm/Kconfig
@ -395,6 +396,11 @@ CONFIG_RADIO_WL128X=m
##
CONFIG_IR_GPIO_CIR=m
##
## drivers/memory/Kconfig
##
CONFIG_TI_EMIF=m
##
## file: drivers/mfd/Kconfig
##
@ -406,6 +412,7 @@ CONFIG_MFD_MC13XXX_I2C=m
CONFIG_MFD_SEC_CORE=y
CONFIG_MFD_TI_AM335X_TSCADC=m
CONFIG_TWL6040_CORE=y
CONFIG_MFD_PALMAS=y
##
## file: drivers/misc/Kconfig
@ -624,7 +631,7 @@ CONFIG_PCI_TEGRA=y
##
CONFIG_OMAP_CONTROL_PHY=m
CONFIG_OMAP_USB2=m
CONFIG_TI_PIPE3=m
CONFIG_TI_PIPE3=y
CONFIG_TWL4030_USB=m
CONFIG_PHY_EXYNOS5250_SATA=m
CONFIG_PHY_SUN4I_USB=m
@ -636,6 +643,7 @@ CONFIG_PHY_EXYNOS5_USBDRD=m
##
CONFIG_PINCTRL_AS3722=y
CONFIG_PINCTRL_SINGLE=y
CONFIG_PINCTRL_PALMAS=y
CONFIG_PINCTRL_TEGRA=y
CONFIG_PINCTRL_TEGRA124=y
@ -686,6 +694,9 @@ CONFIG_REGULATOR_S2MPS11=m
CONFIG_REGULATOR_S5M8767=m
CONFIG_REGULATOR_TWL4030=y
CONFIG_REGULATOR_VEXPRESS=m
CONFIG_REGULATOR_PBIAS=m
CONFIG_REGULATOR_TI_ABB=m
CONFIG_REGULATOR_PALMAS=y
##
## file: drivers/rtc/Kconfig
@ -705,6 +716,7 @@ CONFIG_RTC_DRV_MV=y
CONFIG_RTC_DRV_MC13XXX=y
CONFIG_RTC_DRV_MXC=y
CONFIG_RTC_DRV_SNVS=y
CONFIG_RTC_DRV_PALMAS=y
CONFIG_RTC_DRV_TEGRA=y
##
@ -745,6 +757,14 @@ CONFIG_DRM_IMX_HDMI=m
##
CONFIG_ARMADA_THERMAL=y
##
## file: drivers/thermal/ti-soc-thermal/Kconfig
##
CONFIG_TI_SOC_THERMAL=m
CONFIG_TI_THERMAL=y
CONFIG_OMAP4_THERMAL=y
CONFIG_OMAP5_THERMAL=y
##
## file: drivers/tty/serial/Kconfig
##
@ -799,6 +819,7 @@ CONFIG_USB_DWC3=m
## choice: DWC3 Mode Selection
CONFIG_USB_DWC3_HOST=y
## end choice
CONFIG_USB_DWC3_OMAP=m
CONFIG_USB_DWC3_EXYNOS=m
# CONFIG_USB_DWC3_PCI is not set
@ -879,8 +900,16 @@ CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m
CONFIG_OMAP2_DSS=m
CONFIG_OMAP2_DSS_VENC=y
CONFIG_OMAP4_DSS_HDMI=y
CONFIG_OMAP5_DSS_HDMI=y
CONFIG_OMAP2_DSS_SDI=y
##
## file: drivers/video/fbdev/omap2/displays-new/Kconfig
##
CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m
CONFIG_DISPLAY_ENCODER_TPD12S015=m
CONFIG_DISPLAY_CONNECTOR_HDMI=m
##
## file: drivers/video/fbdev/omap2/omapfb/Kconfig
##
@ -950,3 +979,9 @@ CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
## file: sound/soc/tegra/Kconfig
##
CONFIG_SND_SOC_TEGRA=m
##
## file: drivers/extcon/Kconfig
##
CONFIG_EXTCON=m
CONFIG_EXTCON_PALMAS=m

View File

@ -715,6 +715,7 @@ CONFIG_SENSORS_LM95241=m
CONFIG_SENSORS_LM95245=m
CONFIG_SENSORS_PC87427=m
CONFIG_SENSORS_NTC_THERMISTOR=m
CONFIG_SENSORS_NCT6683=m
CONFIG_SENSORS_NCT6775=m
# CONFIG_SENSORS_SHT15 is not set
CONFIG_SENSORS_SHT21=m
@ -2075,7 +2076,7 @@ CONFIG_USB_ZR364XX=m
##
## file: drivers/memory/Kconfig
##
# CONFIG_MEMORY is not set
CONFIG_MEMORY=y
##
## file: drivers/memstick/Kconfig
@ -3146,6 +3147,7 @@ CONFIG_IWLWIFI=m
CONFIG_IWLDVM=m
CONFIG_IWLMVM=m
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
# CONFIG_IWLWIFI_UAPSD is not set
# CONFIG_IWLWIFI_DEBUG is not set
# CONFIG_IWLWIFI_DEVICE_TRACING is not set

View File

@ -14,6 +14,7 @@ CONFIG_NUMA=y
CONFIG_AMD_NUMA=y
CONFIG_X86_64_ACPI_NUMA=y
CONFIG_NUMA_EMU=y
CONFIG_EFI_MIXED=y
CONFIG_PCI_MMCONFIG=y
CONFIG_ISA_DMA_API=y
CONFIG_X86_X32=y

View File

@ -91,7 +91,6 @@ CONFIG_FB_VALKYRIE=y
CONFIG_FB_CT65550=y
CONFIG_FB_IMSTT=y
CONFIG_FB_MATROX=y
CONFIG_FB_RADEON=y
CONFIG_FB_ATY128=y
CONFIG_FB_ATY=y
CONFIG_FB_SIS=y

View File

@ -3,7 +3,6 @@ flavours:
sh7751r
sh7785lcr
kernel-arch: sh
compiler: gcc-4.7
[build]
image-file: arch/sh/boot/zImage

View File

@ -5,3 +5,4 @@ mmci
omap_hsmmc
sunxi-mmc
dw_mmc-exynos
pbias-regulator

View File

@ -1,9 +1,13 @@
#include <usb-modules>
phy-sun4i-usb
dwc3-exynos
dwc3-omap
ohci-exynos
ohci-omap3
ehci-exynos
ehci-omap
ehci-tegra
phy-exynos-usb2
phy-omap-usb2
ci_hdrc_imx
phy-mxs-usb

View File

@ -1,2 +1,3 @@
i2c-core
i2c-algo-bit
i2c-designware-platform ?

View File

@ -28,3 +28,4 @@ hid-sunplus ?
hid-topseed ?
synaptics_usb ?
wistron_btns ?
i2c-hid ?

View File

@ -216,7 +216,7 @@ Description: Frame buffer support
This package contains Frame buffer drivers for the kernel.
Package: input-modules
Depends: kernel-image, usb-modules
Depends: kernel-image, usb-modules, i2c-modules
Priority: extra
Description: Input devices support
This package contains input device drivers for the kernel.

View File

@ -0,0 +1,53 @@
From patchwork Sat Nov 1 15:30:20 2014
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Subject: [1/1] net: mv643xx_eth: Make TSO disabled by default
From: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
X-Patchwork-Id: 405792
Message-Id: <1414855820-15094-2-git-send-email-ezequiel.garcia@free-electrons.com>
To: <netdev@vger.kernel.org>, David Miller <davem@davemloft.net>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>,
Gregory Clement <gregory.clement@free-electrons.com>,
Tawfik Bayouk <tawfik@marvell.com>, Lior Amsalem <alior@marvell.com>,
Nadav Haklai <nadavh@marvell.com>,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
Date: Sat, 1 Nov 2014 12:30:20 -0300
Data corruption has been observed to be produced by TSO. For instance,
accessing files on a NFS-server with TSO enabled results in different data
transferred each time.
This has been observed only on Kirkwood platforms, i.e. with the mv643xx_eth
driver. Same tests on platforms using the mvneta ethernet driver have
passed without errors.
Make TSO disabled by default for now, until we can found a proper fix
for the regression.
Fixes: 3ae8f4e0b98 ('net: mv643xx_eth: Implement software TSO')
Reported-by: Slawomir Gajzner <slawomir.gajzner@gmail.com>
Reported-by: Julien D'Ascenzio <jdascenzio@yahoo.fr>
Signed-off-by: Ezequiel Garcia <ezequiel.garcia@free-electrons.com>
---
drivers/net/ethernet/marvell/mv643xx_eth.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index b151a94..8b72780 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -3110,11 +3110,11 @@ static int mv643xx_eth_probe(struct platform_device *pdev)
dev->watchdog_timeo = 2 * HZ;
dev->base_addr = 0;
- dev->features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO;
+ dev->features = NETIF_F_SG | NETIF_F_IP_CSUM;
dev->vlan_features = dev->features;
dev->features |= NETIF_F_RXCSUM;
- dev->hw_features = dev->features;
+ dev->hw_features = dev->features | NETIF_F_TSO;
dev->priv_flags |= IFF_UNICAST_FLT;
dev->gso_max_segs = MV643XX_MAX_TSO_SEGS;

View File

@ -0,0 +1,50 @@
From e67d8dd0e2c1b8b4573a6a3f05f609be230dfaff Mon Sep 17 00:00:00 2001
From: Jan Beulich <JBeulich@suse.com>
Date: Tue, 9 Dec 2014 11:47:04 +0000
Subject: [PATCH 3/4] netback: don't store invalid vif pointer
Origin: https://git.kernel.org/linus/f15650b7f94879667f253bc32de7431c1baf2d6e
When xenvif_alloc() fails, it returns a non-NULL error indicator. To
avoid eventual races, we shouldn't store that into struct backend_info
as readers of it only check for NULL.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/xen-netback/xenbus.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index 0b4f1c7..cc8f8ba 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -404,6 +404,7 @@ static int backend_create_xenvif(struct backend_info *be)
int err;
long handle;
struct xenbus_device *dev = be->dev;
+ struct xenvif *vif;
if (be->vif != NULL)
return 0;
@@ -414,13 +415,13 @@ static int backend_create_xenvif(struct backend_info *be)
return (err < 0) ? err : -EINVAL;
}
- be->vif = xenvif_alloc(&dev->dev, dev->otherend_id, handle);
- if (IS_ERR(be->vif)) {
- err = PTR_ERR(be->vif);
- be->vif = NULL;
+ vif = xenvif_alloc(&dev->dev, dev->otherend_id, handle);
+ if (IS_ERR(vif)) {
+ err = PTR_ERR(vif);
xenbus_dev_fatal(dev, err, "creating interface");
return err;
}
+ be->vif = vif;
kobject_uevent(&dev->dev.kobj, KOBJ_ONLINE);
return 0;
--
1.7.10.4

View File

@ -0,0 +1,38 @@
From bafb73e2d50d3addd0f79e09ea3f2e2950505733 Mon Sep 17 00:00:00 2001
From: Zoltan Kiss <zoltan.kiss@linaro.org>
Date: Tue, 28 Oct 2014 15:29:30 +0000
Subject: [PATCH 1/4] xen-netback: Disable NAPI after disabling interrupts
Origin: https://git.kernel.org/linus/8fe78989c3445a221cfcc54964e7e62718883615
Otherwise the interrupt handler still calls napi_complete. Although it
won't schedule NAPI again as either NAPI_STATE_DISABLE or
NAPI_STATE_SCHED is set, it is just unnecessary, and it makes more
sense to do this way.
Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Acked-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/xen-netback/interface.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c
index 21d8db8..ddcb757 100644
--- a/drivers/net/xen-netback/interface.c
+++ b/drivers/net/xen-netback/interface.c
@@ -235,10 +235,10 @@ static void xenvif_down(struct xenvif *vif)
for (queue_index = 0; queue_index < num_queues; ++queue_index) {
queue = &vif->queues[queue_index];
- napi_disable(&queue->napi);
disable_irq(queue->tx_irq);
if (queue->tx_irq != queue->rx_irq)
disable_irq(queue->rx_irq);
+ napi_disable(&queue->napi);
del_timer_sync(&queue->credit_timeout);
}
}
--
1.7.10.4

View File

@ -0,0 +1,188 @@
From 0baa6f7d5b0ed21b28768d151b1d74cb9b88dacf Mon Sep 17 00:00:00 2001
From: David Vrabel <david.vrabel@citrix.com>
Date: Thu, 18 Dec 2014 11:13:06 +0000
Subject: [PATCH 4/4] xen-netback: support frontends without feature-rx-notify
again
Origin: https://git.kernel.org/linus/26c0e102585d5a4d311f5d6eb7f524d288e7f6b7
Commit bc96f648df1bbc2729abbb84513cf4f64273a1f1 (xen-netback: make
feature-rx-notify mandatory) incorrectly assumed that there were no
frontends in use that did not support this feature. But the frontend
driver in MiniOS does not and since this is used by (qemu) stubdoms,
these stopped working.
Netback sort of works as-is in this mode except:
- If there are no Rx requests and the internal Rx queue fills, only
the drain timeout will wake the thread. The default drain timeout
of 10 s would give unacceptable pauses.
- If an Rx stall was detected and the internal Rx queue is drained,
then the Rx thread would never wake.
Handle these two cases (when feature-rx-notify is disabled) by:
- Reducing the drain timeout to 30 ms.
- Disabling Rx stall detection.
Reported-by: John <jw@nuclearfallout.net>
Tested-by: John <jw@nuclearfallout.net>
Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
---
drivers/net/xen-netback/common.h | 4 +++-
drivers/net/xen-netback/interface.c | 4 +++-
drivers/net/xen-netback/netback.c | 27 ++++++++++++++-------------
drivers/net/xen-netback/xenbus.c | 12 +++++++++---
4 files changed, 29 insertions(+), 18 deletions(-)
diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h
index 083ecc9..5f1fda4 100644
--- a/drivers/net/xen-netback/common.h
+++ b/drivers/net/xen-netback/common.h
@@ -230,6 +230,8 @@ struct xenvif {
*/
bool disabled;
unsigned long status;
+ unsigned long drain_timeout;
+ unsigned long stall_timeout;
/* Queues */
struct xenvif_queue *queues;
@@ -328,7 +330,7 @@ irqreturn_t xenvif_interrupt(int irq, void *dev_id);
extern bool separate_tx_rx_irq;
extern unsigned int rx_drain_timeout_msecs;
-extern unsigned int rx_drain_timeout_jiffies;
+extern unsigned int rx_stall_timeout_msecs;
extern unsigned int xenvif_max_queues;
#ifdef CONFIG_DEBUG_FS
diff --git a/drivers/net/xen-netback/interface.c b/drivers/net/xen-netback/interface.c
index ddcb757..af047c2 100644
--- a/drivers/net/xen-netback/interface.c
+++ b/drivers/net/xen-netback/interface.c
@@ -166,7 +166,7 @@ static int xenvif_start_xmit(struct sk_buff *skb, struct net_device *dev)
goto drop;
cb = XENVIF_RX_CB(skb);
- cb->expires = jiffies + rx_drain_timeout_jiffies;
+ cb->expires = jiffies + vif->drain_timeout;
xenvif_rx_queue_tail(queue, skb);
xenvif_kick_thread(queue);
@@ -414,6 +414,8 @@ struct xenvif *xenvif_alloc(struct device *parent, domid_t domid,
vif->ip_csum = 1;
vif->dev = dev;
vif->disabled = false;
+ vif->drain_timeout = msecs_to_jiffies(rx_drain_timeout_msecs);
+ vif->stall_timeout = msecs_to_jiffies(rx_stall_timeout_msecs);
/* Start out with no queues. */
vif->queues = NULL;
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index 6563f07..c39aace 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -60,14 +60,12 @@ module_param(separate_tx_rx_irq, bool, 0644);
*/
unsigned int rx_drain_timeout_msecs = 10000;
module_param(rx_drain_timeout_msecs, uint, 0444);
-unsigned int rx_drain_timeout_jiffies;
/* The length of time before the frontend is considered unresponsive
* because it isn't providing Rx slots.
*/
-static unsigned int rx_stall_timeout_msecs = 60000;
+unsigned int rx_stall_timeout_msecs = 60000;
module_param(rx_stall_timeout_msecs, uint, 0444);
-static unsigned int rx_stall_timeout_jiffies;
unsigned int xenvif_max_queues;
module_param_named(max_queues, xenvif_max_queues, uint, 0644);
@@ -2022,7 +2020,7 @@ static bool xenvif_rx_queue_stalled(struct xenvif_queue *queue)
return !queue->stalled
&& prod - cons < XEN_NETBK_RX_SLOTS_MAX
&& time_after(jiffies,
- queue->last_rx_time + rx_stall_timeout_jiffies);
+ queue->last_rx_time + queue->vif->stall_timeout);
}
static bool xenvif_rx_queue_ready(struct xenvif_queue *queue)
@@ -2040,8 +2038,9 @@ static bool xenvif_have_rx_work(struct xenvif_queue *queue)
{
return (!skb_queue_empty(&queue->rx_queue)
&& xenvif_rx_ring_slots_available(queue, XEN_NETBK_RX_SLOTS_MAX))
- || xenvif_rx_queue_stalled(queue)
- || xenvif_rx_queue_ready(queue)
+ || (queue->vif->stall_timeout &&
+ (xenvif_rx_queue_stalled(queue)
+ || xenvif_rx_queue_ready(queue)))
|| kthread_should_stop()
|| queue->vif->disabled;
}
@@ -2094,6 +2093,9 @@ int xenvif_kthread_guest_rx(void *data)
struct xenvif_queue *queue = data;
struct xenvif *vif = queue->vif;
+ if (!vif->stall_timeout)
+ xenvif_queue_carrier_on(queue);
+
for (;;) {
xenvif_wait_for_rx_work(queue);
@@ -2120,10 +2122,12 @@ int xenvif_kthread_guest_rx(void *data)
* while it's probably not responsive, drop the
* carrier so packets are dropped earlier.
*/
- if (xenvif_rx_queue_stalled(queue))
- xenvif_queue_carrier_off(queue);
- else if (xenvif_rx_queue_ready(queue))
- xenvif_queue_carrier_on(queue);
+ if (vif->stall_timeout) {
+ if (xenvif_rx_queue_stalled(queue))
+ xenvif_queue_carrier_off(queue);
+ else if (xenvif_rx_queue_ready(queue))
+ xenvif_queue_carrier_on(queue);
+ }
/* Queued packets may have foreign pages from other
* domains. These cannot be queued indefinitely as
@@ -2194,9 +2198,6 @@ static int __init netback_init(void)
if (rc)
goto failed_init;
- rx_drain_timeout_jiffies = msecs_to_jiffies(rx_drain_timeout_msecs);
- rx_stall_timeout_jiffies = msecs_to_jiffies(rx_stall_timeout_msecs);
-
#ifdef CONFIG_DEBUG_FS
xen_netback_dbg_root = debugfs_create_dir("xen-netback", NULL);
if (IS_ERR_OR_NULL(xen_netback_dbg_root))
diff --git a/drivers/net/xen-netback/xenbus.c b/drivers/net/xen-netback/xenbus.c
index cc8f8ba..60f7c7d 100644
--- a/drivers/net/xen-netback/xenbus.c
+++ b/drivers/net/xen-netback/xenbus.c
@@ -887,9 +887,15 @@ static int read_xenbus_vif_flags(struct backend_info *be)
return -EOPNOTSUPP;
if (xenbus_scanf(XBT_NIL, dev->otherend,
- "feature-rx-notify", "%d", &val) < 0 || val == 0) {
- xenbus_dev_fatal(dev, -EINVAL, "feature-rx-notify is mandatory");
- return -EINVAL;
+ "feature-rx-notify", "%d", &val) < 0)
+ val = 0;
+ if (!val) {
+ /* - Reduce drain timeout to poll more frequently for
+ * Rx requests.
+ * - Disable Rx stall detection.
+ */
+ be->vif->drain_timeout = msecs_to_jiffies(30);
+ be->vif->stall_timeout = 0;
}
if (xenbus_scanf(XBT_NIL, dev->otherend, "feature-sg",
--
1.7.10.4

View File

@ -0,0 +1,61 @@
From: Aaron Lu <aaron.lu@intel.com>
Date: Tue, 28 Oct 2014 14:35:59 +0800
Subject: ACPI / video: Run _BCL before deciding registering backlight
Origin: https://git.kernel.org/linus/dce4ec2e452fddb7542b5fc15d0e6b8531f6d5eb
The ASUS K53SM's ACPI table queries _OSI("Windows 2012") in the video
output device's _BCL and _BCM control method instead of the usual _INI
functions of the _SB or PCI host bridge PCI0 devices. This made our
video module thought this is a pre-Win8 system when deciding if we
should register a backlight interface for it and the end result is that
a non-working acpi_video interface is registered and user is unable to
control backlight from GUI. Solve this problem by evaluating _BCL control
method before doing the decision.
Note that for some Thinkpad systems, the _BCL is also required to be
evaluated for the hotkey event to be generated no matter if we will
register an ACPI video backlight interface for it or not. Since the
thinkpad_acpi module will do this anyway we didn't add such a thing in
the video module previously. But now with this change here, the
thinkpad_acpi module is no more necessary for those systems regarding
backlight functionality.
Link: https://bugzilla.kernel.org/show_bug.cgi?id=85051
Reported-and-tested-by: Ralf Jung <post+kernel@ralfj.de>
Signed-off-by: Aaron Lu <aaron.lu@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
---
drivers/acpi/video.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
--- a/drivers/acpi/video.c
+++ b/drivers/acpi/video.c
@@ -1836,6 +1836,19 @@ static void acpi_video_dev_register_back
printk(KERN_ERR PREFIX "Create sysfs link\n");
}
+static void acpi_video_run_bcl_for_osi(struct acpi_video_bus *video)
+{
+ struct acpi_video_device *dev;
+ union acpi_object *levels;
+
+ mutex_lock(&video->device_list_lock);
+ list_for_each_entry(dev, &video->video_device_list, entry) {
+ if (!acpi_video_device_lcd_query_levels(dev, &levels))
+ kfree(levels);
+ }
+ mutex_unlock(&video->device_list_lock);
+}
+
static int acpi_video_bus_register_backlight(struct acpi_video_bus *video)
{
struct acpi_video_device *dev;
@@ -1843,6 +1856,8 @@ static int acpi_video_bus_register_backl
if (video->backlight_registered)
return 0;
+ acpi_video_run_bcl_for_osi(video);
+
if (!acpi_video_verify_backlight_support())
return 0;

View File

@ -1,50 +0,0 @@
From: Andy Lutomirski <luto@amacapital.net>
Date: Mon, 24 Nov 2014 17:39:06 -0800
Subject: x86/asm/traps: Disable tracing and kprobes in fixup_bad_iret and
sync_regs
Origin: https://git.kernel.org/cgit/linux/kernel/git/tip/tip.git/commit?id=7ddc6a2199f1da405a2fb68c40db8899b1a8cd87
These functions can be executed on the int3 stack, so kprobes
are dangerous. Tracing is probably a bad idea, too.
Fixes: b645af2d5905 ("x86_64, traps: Rework bad_iret")
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
Cc: <stable@vger.kernel.org> # Backport as far back as it would apply
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Link: http://lkml.kernel.org/r/50e33d26adca60816f3ba968875801652507d0c4.1416870125.git.luto@amacapital.net
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
arch/x86/kernel/traps.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
index de801f2..07ab8e9 100644
--- a/arch/x86/kernel/traps.c
+++ b/arch/x86/kernel/traps.c
@@ -387,7 +387,7 @@ NOKPROBE_SYMBOL(do_int3);
* for scheduling or signal handling. The actual stack switch is done in
* entry.S
*/
-asmlinkage __visible struct pt_regs *sync_regs(struct pt_regs *eregs)
+asmlinkage __visible notrace struct pt_regs *sync_regs(struct pt_regs *eregs)
{
struct pt_regs *regs = eregs;
/* Did already sync */
@@ -413,7 +413,7 @@ struct bad_iret_stack {
struct pt_regs regs;
};
-asmlinkage __visible
+asmlinkage __visible notrace
struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
{
/*
@@ -436,6 +436,7 @@ struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
BUG_ON(!user_mode_vm(&new_stack->regs));
return new_stack;
}
+NOKPROBE_SYMBOL(fixup_bad_iret);
#endif
/*

View File

@ -0,0 +1,124 @@
From: Andy Lutomirski <luto@amacapital.net>
Date: Fri, 19 Dec 2014 16:04:11 -0800
Subject: x86_64, vdso: Fix the vdso address randomization algorithm
Origin: https://git.kernel.org/linus/394f56fe480140877304d342dec46d50dc823d46
The theory behind vdso randomization is that it's mapped at a random
offset above the top of the stack. To avoid wasting a page of
memory for an extra page table, the vdso isn't supposed to extend
past the lowest PMD into which it can fit. Other than that, the
address should be a uniformly distributed address that meets all of
the alignment requirements.
The current algorithm is buggy: the vdso has about a 50% probability
of being at the very end of a PMD. The current algorithm also has a
decent chance of failing outright due to incorrect handling of the
case where the top of the stack is near the top of its PMD.
This fixes the implementation. The paxtest estimate of vdso
"randomisation" improves from 11 bits to 18 bits. (Disclaimer: I
don't know what the paxtest code is actually calculating.)
It's worth noting that this algorithm is inherently biased: the vdso
is more likely to end up near the end of its PMD than near the
beginning. Ideally we would either nix the PMD sharing requirement
or jointly randomize the vdso and the stack to reduce the bias.
In the mean time, this is a considerable improvement with basically
no risk of compatibility issues, since the allowed outputs of the
algorithm are unchanged.
As an easy test, doing this:
for i in `seq 10000`
do grep -P vdso /proc/self/maps |cut -d- -f1
done |sort |uniq -d
used to produce lots of output (1445 lines on my most recent run).
A tiny subset looks like this:
7fffdfffe000
7fffe01fe000
7fffe05fe000
7fffe07fe000
7fffe09fe000
7fffe0bfe000
7fffe0dfe000
Note the suspicious fe000 endings. With the fix, I get a much more
palatable 76 repeated addresses.
Reviewed-by: Kees Cook <keescook@chromium.org>
Cc: stable@vger.kernel.org
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
---
arch/x86/vdso/vma.c | 45 +++++++++++++++++++++++++++++----------------
1 file changed, 29 insertions(+), 16 deletions(-)
--- a/arch/x86/vdso/vma.c
+++ b/arch/x86/vdso/vma.c
@@ -54,12 +54,17 @@ subsys_initcall(init_vdso);
struct linux_binprm;
-/* Put the vdso above the (randomized) stack with another randomized offset.
- This way there is no hole in the middle of address space.
- To save memory make sure it is still in the same PTE as the stack top.
- This doesn't give that many random bits.
-
- Only used for the 64-bit and x32 vdsos. */
+/*
+ * Put the vdso above the (randomized) stack with another randomized
+ * offset. This way there is no hole in the middle of address space.
+ * To save memory make sure it is still in the same PTE as the stack
+ * top. This doesn't give that many random bits.
+ *
+ * Note that this algorithm is imperfect: the distribution of the vdso
+ * start address within a PMD is biased toward the end.
+ *
+ * Only used for the 64-bit and x32 vdsos.
+ */
static unsigned long vdso_addr(unsigned long start, unsigned len)
{
#ifdef CONFIG_X86_32
@@ -67,22 +72,30 @@ static unsigned long vdso_addr(unsigned
#else
unsigned long addr, end;
unsigned offset;
- end = (start + PMD_SIZE - 1) & PMD_MASK;
+
+ /*
+ * Round up the start address. It can start out unaligned as a result
+ * of stack start randomization.
+ */
+ start = PAGE_ALIGN(start);
+
+ /* Round the lowest possible end address up to a PMD boundary. */
+ end = (start + len + PMD_SIZE - 1) & PMD_MASK;
if (end >= TASK_SIZE_MAX)
end = TASK_SIZE_MAX;
end -= len;
- /* This loses some more bits than a modulo, but is cheaper */
- offset = get_random_int() & (PTRS_PER_PTE - 1);
- addr = start + (offset << PAGE_SHIFT);
- if (addr >= end)
- addr = end;
+
+ if (end > start) {
+ offset = get_random_int() % (((end - start) >> PAGE_SHIFT) + 1);
+ addr = start + (offset << PAGE_SHIFT);
+ } else {
+ addr = start;
+ }
/*
- * page-align it here so that get_unmapped_area doesn't
- * align it wrongfully again to the next page. addr can come in 4K
- * unaligned here as a result of stack start randomization.
+ * Forcibly align the final address in case we have a hardware
+ * issue that requires alignment for performance reasons.
*/
- addr = PAGE_ALIGN(addr);
addr = align_vdso_addr(addr);
return addr;

View File

@ -15,7 +15,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
---
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -83,6 +83,11 @@
@@ -86,6 +86,11 @@
#define CREATE_TRACE_POINTS
#include <trace/events/task.h>
@ -27,7 +27,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
/*
* Protected counters by write_lock_irq(&tasklist_lock)
@@ -1144,6 +1149,10 @@ static struct task_struct *copy_process(
@@ -1195,6 +1200,10 @@ static struct task_struct *copy_process(
if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS))
return ERR_PTR(-EINVAL);
@ -38,7 +38,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
/*
* Thread groups must share signals as well, and detached threads
* can only be started up within the thread group.
@@ -1831,6 +1840,12 @@ SYSCALL_DEFINE1(unshare, unsigned long,
@@ -1890,6 +1899,12 @@ SYSCALL_DEFINE1(unshare, unsigned long,
if (unshare_flags & CLONE_NEWNS)
unshare_flags |= CLONE_FS;
@ -53,7 +53,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
goto bad_unshare_out;
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -104,6 +104,9 @@ extern int core_uses_pid;
@@ -103,6 +103,9 @@ extern int core_uses_pid;
extern char core_pattern[];
extern unsigned int core_pipe_limit;
#endif
@ -63,7 +63,7 @@ Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
extern int pid_max;
extern int pid_max_min, pid_max_max;
extern int percpu_pagelist_fraction;
@@ -482,6 +485,15 @@ static struct ctl_table kern_table[] = {
@@ -490,6 +493,15 @@ static struct ctl_table kern_table[] = {
.mode = 0644,
.proc_handler = proc_dointvec,
},

View File

@ -5,7 +5,7 @@ Forwarded: not-needed
--- a/.gitignore
+++ b/.gitignore
@@ -46,11 +46,6 @@
@@ -47,17 +47,6 @@
/Module.markers
#
@ -14,6 +14,12 @@ Forwarded: not-needed
-/debian/
-
-#
# git files that we don't want to ignore even it they are dot-files
-# git files that we don't want to ignore even it they are dot-files
-#
-!.gitignore
-!.mailmap
-
-#
# Generated include files
#
!.gitignore
include/config

View File

@ -0,0 +1,16 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: x86/efi: Autoload efi-pstore
Date: Wed, 24 Dec 2014 17:44:06 +0100
Bug-Debian: https://bugs.debian.org/703363
Bug-Debian: https://bugs.debian.org/773309
Forwarded: no
efi-pstore should be auto-loaded on EFI systems, same as efivars.
--- a/drivers/firmware/efi/efi-pstore.c
+++ b/drivers/firmware/efi/efi-pstore.c
@@ -400,3 +400,4 @@ module_exit(efivars_pstore_exit);
MODULE_DESCRIPTION("EFI variable backend for pstore");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:efivars");

View File

@ -1,25 +0,0 @@
From: Ben Hutchings <ben@decadent.org.uk>
Subject: x86/efi: Autoload efivars
Date: Mon, 18 Mar 2013 22:59:14 +0000
Bug-Debian: https://bugs.debian.org/703363
Forwarded: no
efivars is generally useful to have on EFI systems, and in some cases
it may be impossible to load it after a kernel upgrade in order to
complete a boot loader update. efi-pstore is similarly useful though
less critical. At the same time we don't want to waste memory on
non-EFI systems by making them built-in.
Instead, give them module aliases as if they are platform drivers, and
register a corresponding platform device whenever EFI runtime services
are available. This should trigger udev to load them.
[bwh: Most of this went upstream in 3.17-rc4, just not the efi-pstore bit.]
---
--- a/drivers/firmware/efi/efi-pstore.c
+++ b/drivers/firmware/efi/efi-pstore.c
@@ -250,3 +250,4 @@ module_exit(efivars_pstore_exit);
MODULE_DESCRIPTION("EFI variable backend for pstore");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:efivars");

View File

@ -0,0 +1,49 @@
From: Steve McIntyre <steve@einval.com>
Date: Fri, 9 Jan 2015 15:29:53 +0000
Subject: efi: Expose underlying UEFI firmware platform size to userland
Origin: https://git.kernel.org/cgit/linux/kernel/git/mfleming/efi.git//commit?id=2859dff97e54db4795b8b7d9606cb8efcec722ff
In some cases (e.g. Intel Bay Trail machines), the kernel will happily
run in 64-bit even if the underlying UEFI firmware platform is
32-bit. That's great, but it's difficult for userland utilities like
grub-install to do the right thing in such a situation.
The kernel already knows about the size of the firmware via
efi_enabled(EFI_64BIT). Add an extra sysfs interface
/sys/firmware/efi/fw_platform_size to expose that information to
userland for low-level utilities to use.
Signed-off-by: Steve McIntyre <steve@einval.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
---
drivers/firmware/efi/efi.c | 9 +++++++++
1 file changed, 9 insertions(+)
--- a/drivers/firmware/efi/efi.c
+++ b/drivers/firmware/efi/efi.c
@@ -90,15 +90,24 @@ EFI_ATTR_SHOW(fw_vendor);
EFI_ATTR_SHOW(runtime);
EFI_ATTR_SHOW(config_table);
+static ssize_t fw_platform_size_show(struct kobject *kobj,
+ struct kobj_attribute *attr, char *buf)
+{
+ return sprintf(buf, "%d\n", efi_enabled(EFI_64BIT) ? 64 : 32);
+}
+
static struct kobj_attribute efi_attr_fw_vendor = __ATTR_RO(fw_vendor);
static struct kobj_attribute efi_attr_runtime = __ATTR_RO(runtime);
static struct kobj_attribute efi_attr_config_table = __ATTR_RO(config_table);
+static struct kobj_attribute efi_attr_fw_platform_size =
+ __ATTR_RO(fw_platform_size);
static struct attribute *efi_subsys_attrs[] = {
&efi_attr_systab.attr,
&efi_attr_fw_vendor.attr,
&efi_attr_runtime.attr,
&efi_attr_config_table.attr,
+ &efi_attr_fw_platform_size.attr,
NULL,
};

View File

@ -0,0 +1,74 @@
From ca4ee84ccac71eb05fe3bedff9283cf52d4b4aa7 Mon Sep 17 00:00:00 2001
From: Maxime Ripard <maxime.ripard@free-electrons.com>
Date: Tue, 2 Sep 2014 19:25:26 +0200
Subject: ARM: sun7i: pcduino3: Relicense the device tree under GPLv2/X11
Origin: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/patch/?id=ca4ee84ccac71eb05fe3bedff9283cf52d4b4aa7
The current GPL only licensing on the DTSI makes it very impractical for other
software components licensed under another license.
In order to make it easier for them to reuse our device trees, relicense our
device trees under a GPL/X11 dual-license.
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Acked-by: Zoltan HERPAI <wigyori@uid0.hu>
diff --git a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
index 046dfc0..8dca49b 100644
--- a/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
+++ b/arch/arm/boot/dts/sun7i-a20-pcduino3.dts
@@ -2,12 +2,48 @@
* Copyright 2014 Zoltan HERPAI
* Zoltan HERPAI <wigyori@uid0.hu>
*
- * The code contained herein is licensed under the GNU General Public
- * License. You may obtain a copy of the GNU General Public License
- * Version 2 or later at the following locations:
+ * This file is dual-licensed: you can use it either under the terms
+ * of the GPL or the X11 license, at your option. Note that this dual
+ * licensing only applies to this file, and not this project as a
+ * whole.
*
- * http://www.opensource.org/licenses/gpl-license.html
- * http://www.gnu.org/copyleft/gpl.html
+ * a) This file is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of the
+ * License, or (at your option) any later version.
+ *
+ * This file is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this file; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,
+ * MA 02110-1301 USA
+ *
+ * Or, alternatively,
+ *
+ * b) Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation
+ * files (the "Software"), to deal in the Software without
+ * restriction, including without limitation the rights to use,
+ * copy, modify, merge, publish, distribute, sublicense, and/or
+ * sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following
+ * conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+ * OTHER DEALINGS IN THE SOFTWARE.
*/
/dts-v1/;

12
debian/patches/series vendored
View File

@ -42,7 +42,7 @@ bugfix/mips/disable-advansys.patch
bugfix/m68k/ethernat-kconfig.patch
bugfix/arm64/arm64-add-missing-dts-entry-for-X-Gene-platform.patch
bugfix/arm64/arm64-removed-using-of-the-mask-attribute-in-the-dts.patch
bugfix/x86/x86-asm-traps-Disable-tracing-and-kprobes-in-fixup_b.patch
bugfix/x86/acpi-video-run-_bcl-before-deciding-registering-back.patch
# Arch features
features/mips/MIPS-increase-MAX-PHYSMEM-BITS-on-Loongson-3-only.patch
@ -55,6 +55,7 @@ features/arm/dts-sun7i-Add-spi0_pins_a-pinctrl-setting.patch
features/arm/dts-sun7i-Add-uart3_pins_b-pinctrl-setting.patch
features/arm/dts-sun7i-Add-Banana-Pi-board.patch
features/arm/dts-sunxi-Banana-Pi-increase-startup-delay-for-the-GMAC-PHY-regulator.patch
features/arm/dts-sun7i-pcduino3-Relicense-the-device-tree-under-GPLv2-X11.patch
# Miscellaneous bug fixes
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
@ -64,9 +65,16 @@ debian/i2o-disable-i2o_ext_adaptec-on-64bit.patch
bugfix/all/aic94xx-remove-broken-fallback-for-missing-ctrl-a.patch
bugfix/all/rtsx_usb_ms-use-msleep_interruptible-in-polling-loop.patch
bugfix/all/revert-drivers-net-disable-ufo-through-virtio-in-macvtap-and-tun.patch
bugfix/all/xen-netback-Disable-NAPI-after-disabling-interrupts.patch
bugfix/all/netback-don-t-store-invalid-vif-pointer.patch
bugfix/all/xen-netback-support-frontends-without-feature-rx-not.patch
bugfix/all/net-mv643xx-disable-tso-by-default.patch
# Miscellaneous features
features/all/efi-autoload-efivars.patch
features/all/efi-autoload-efi-pstore.patch
features/all/mmc_block-increase-max_devices.patch
features/all/of-add-optional-options-parameter-to-of_find_node_by.patch
features/all/of-support-passing-console-options-with-stdout-path.patch
features/all/efi-expose-underlying-uefi-firmware-platform-size-to.patch
bugfix/x86/x86_64-vdso-fix-the-vdso-address-randomization-algor.patch