Merge changes from sid up to 3.14.7-1
Replace 'powerpc/powernv: Add calls to support little endian host' with the version committed upstream. Drop the ABI-preserving changes. svn path=/dists/trunk/linux/; revision=21452
This commit is contained in:
commit
a50e53cccf
|
@ -60,6 +60,244 @@ linux (3.15~rc5-1~exp1) experimental; urgency=medium
|
|||
|
||||
-- maximilian attems <maks@debian.org> Fri, 16 May 2014 14:33:57 +0200
|
||||
|
||||
linux (3.14.7-1) unstable; urgency=medium
|
||||
|
||||
* New upstream stable update:
|
||||
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.6
|
||||
- [mipsel] loongson2_cpufreq: Fix CPU clock rate setting
|
||||
(regression in 3.14)
|
||||
- rtmutex: Fix deadlock detector for real
|
||||
- kernfs: add back missing error check in kernfs_fop_mmap()
|
||||
(regression in 3.14)
|
||||
- coredump: fix va_list corruption (regression in 3.11)
|
||||
- mm: make fixup_user_fault() check the vma access rights too
|
||||
- serial: 8250: Fix thread unsafe __dma_tx_complete function
|
||||
- 8250_core: Fix unwanted TX chars write
|
||||
- iwlwifi: 7000: bump API to 9
|
||||
- timer: Prevent overflow in apply_slack
|
||||
- cfg80211: free sme on connection failures (regression in 3.11)
|
||||
- cfg80211: add cfg80211_sched_scan_stopped_rtnl (regression in 3.14)
|
||||
- mac80211: fix nested rtnl locking on ieee80211_reconfig
|
||||
(regression in 3.14)
|
||||
- mm, thp: close race between mremap() and split_huge_page()
|
||||
- [x86] mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow()
|
||||
- hwpoison, hugetlb: lock_page/unlock_page does not match for handling a
|
||||
free hugepage
|
||||
- iwlwifi: mvm: delay enabling smart FIFO until after beacon RX
|
||||
(regression in 3.14)
|
||||
- aio: fix potential leak in aio_run_iocb().
|
||||
- Revert "hwmon: (coretemp) Refine TjMax detection"
|
||||
- hrtimer: Prevent remote enqueue of leftmost timers
|
||||
- hrtimer: Set expiry time before switch_hrtimer_base()
|
||||
- dm verity: fix biovecs hash calculation regression (regression in 3.14)
|
||||
- dm cache: fix writethrough mode quiescing in cache_map
|
||||
(regression in 3.13)
|
||||
- md/raid10: call wait_barrier() for each request submitted.
|
||||
(regression in 3.14)
|
||||
- PNP / ACPI: Do not return errors if _DIS or _SRS are not present
|
||||
(regression in 3.14)
|
||||
- ACPI / EC: Process rather than discard events in acpi_ec_clear
|
||||
(regression in 3.13.7, 3.14)
|
||||
- irqchip: armada-370-xp: fix invalid cast of signed value into unsigned
|
||||
variable (regression in 3.13)
|
||||
- irqchip: armada-370-xp: implement the ->check_device() msi_chip
|
||||
operation (regression in 3.13)
|
||||
- irqchip: armada-370-xp: Fix releasing of MSIs (regression in 3.13)
|
||||
- [x86] drm/i915: Allow user modes to exceed DVI 165MHz limit
|
||||
(regression in 3.14)
|
||||
- [x86] drm/i915: Don't check gmch state on inherited configs
|
||||
(regression in 3.13?)
|
||||
- [x86] drm/i915: Don't WARN nor handle unexpected hpd interrupts on gmch
|
||||
platforms (regression in 3.13)
|
||||
- [x86] drm/radeon: fix runpm handling on APUs (v4) (regression in 3.13)
|
||||
- drm/radeon: disable mclk dpm on R7 260X (regression in 3.14)
|
||||
- drm/radeon: add support for newer mc ucode on SI (v2)
|
||||
- drm/radeon: add support for newer mc ucode on CI (v2)
|
||||
- drm/radeon: re-enable mclk dpm on R7 260X asics
|
||||
- drm/radeon/uvd: use lower clocks on old UVD to boot v2
|
||||
(regression in 3.13)
|
||||
- drm/radeon: check buffer relocation offset
|
||||
- USB: Nokia 305 should be treated as unusual dev
|
||||
- USB: Nokia 5300 should be treated as unusual dev
|
||||
- Revert "Bluetooth: Enable autosuspend for Intel Bluetooth device"
|
||||
(regression in 3.14)
|
||||
- posix_acl: handle NULL ACL in posix_acl_equiv_mode
|
||||
- fs/affs/super.c: bugfix / double free (regression in 3.14)
|
||||
- [armel/orion5x] fix target ID for crypto SRAM window
|
||||
(regression in 3.12)
|
||||
- [armel/kirkwood]: dts: fix mislocated pcie-controller nodes
|
||||
(regression in 3.12)
|
||||
- [armhf/armmp-lpae] 8012/1: kdump: Avoid overflow when converting pfn to
|
||||
physaddr
|
||||
- drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip
|
||||
(regression in 3.11)
|
||||
- drm/i915/vlv: reset VLV media force wake request register
|
||||
(regression in 3.14?)
|
||||
- i40e: potential array underflow in i40e_vc_process_vf_msg()
|
||||
- igb: Fix Null-pointer dereference in igb_reset_q_vector
|
||||
(regression in 3.14)
|
||||
- igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only
|
||||
(regression in 3.14)
|
||||
- leds: leds-pwm: properly clean up after probe failure
|
||||
- device_cgroup: rework device access check and exception checking
|
||||
- device_cgroup: check if exception removal is allowed
|
||||
- media: media-device: fix infoleak in ioctl media_enum_entities()
|
||||
(CVE-2014-1739)
|
||||
- Input: Add INPUT_PROP_TOPBUTTONPAD device property
|
||||
- Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property
|
||||
- e1000e: Fix no connectivity when driver loaded with cable out
|
||||
(regression in 3.12)
|
||||
- autofs: fix lockref lookup
|
||||
- vfs: fix races between __d_instantiate() and checks of dentry flags
|
||||
- ALSA: hda - hdmi: Set converter channel count even without sink
|
||||
(regression in 3.13)
|
||||
- NFSd: Move default initialisers from create_client() to alloc_client()
|
||||
- NFSd: call rpc_destroy_wait_queue() from free_client()
|
||||
- NFSD: Call ->set_acl with a NULL ACL structure if no entries
|
||||
- nfsd4: remove lockowner when removing lock stateid
|
||||
- workqueue: fix bugs in wq_update_unbound_numa() failure path
|
||||
- workqueue: fix a possible race condition between rescuer and pwq-release
|
||||
- [arm] mvebu: mvebu-soc-id: add missing clk_put() call
|
||||
(regression in 3.14)
|
||||
- [arm] mvebu: mvebu-soc-id: keep clock enabled if PCIe unit is enabled
|
||||
(regression in 3.14)
|
||||
- ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets()
|
||||
(regression in 3.14)
|
||||
- [hppa] ratelimit userspace segfault printing
|
||||
- [amd64] modify_ldt: Make support for 16-bit segments a runtime option
|
||||
- sysfs: make sure read buffer is zeroed (possible regression in 3.13)
|
||||
- Target/iser: Fix wrong connection requests list addition
|
||||
- Target/iser: Fix iscsit_accept_np and rdma_cm racy flow
|
||||
- iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out
|
||||
(regression in 3.11)
|
||||
- target: fix memory leak on XCOPY
|
||||
- [x86] drm/i915: Disable self-refresh for untiled fbs on i915gm
|
||||
(regression in 3.14)
|
||||
- [x86] drm/i915: move power domain init earlier during system resume
|
||||
(regression in 3.14?)
|
||||
- [x86] drm/i915: Fix unsafe loop iteration over vma whilst unbinding them
|
||||
(regression in 3.12)
|
||||
- iwlwifi: mvm: BT Coex - fix Look Up Table (regression in 3.13)
|
||||
- PCI: Wrong register used to check pending traffic (regression in 3.14)
|
||||
- dm crypt: fix cpu hotplug crash by removing per-cpu structure
|
||||
- dm thin: allow metadata commit if pool is in PM_OUT_OF_DATA_SPACE mode
|
||||
(regression in 3.14)
|
||||
- dm thin: add timeout to stop out-of-data-space mode holding IO forever
|
||||
- dmaengine: fix dmaengine_unmap failure
|
||||
- dma: mv_xor: Flush descriptors before activating a channel
|
||||
- tcm_fc: Fix free-after-use regression in ft_free_cmd
|
||||
(regression in 3.13)
|
||||
- ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses.
|
||||
(regression in 3.14)
|
||||
- ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c"
|
||||
(regression in 3.13)
|
||||
- ACPI: Revert "ACPI / Battery: Remove battery's proc directory"
|
||||
(regression in 3.13)
|
||||
- [x86] ACPI / video: Add use_native_backlight quirks for more systems
|
||||
- ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus"
|
||||
(regression in 3.13)
|
||||
- [x86] ACPI / TPM: Fix resume regression on Chromebooks
|
||||
(regression in 3.14)
|
||||
- i2c: s3c2410: resume race fix
|
||||
- [x86] intel_pstate: Set turbo VID for BayTrail
|
||||
- [s390] crypto: fix aes,des ctr mode concurrency finding.
|
||||
- clk: Fix double free due to devm_clk_register()
|
||||
- clk: Fix slab corruption in clk_unregister()
|
||||
- [powerpc] powernv: Reset root port in firmware (regression in 3.14)
|
||||
- [powerpc] irq work racing with timer interrupt can result in timer
|
||||
interrupt hang (regression in 3.14)
|
||||
- [powerpc] kexec: Fix "Processor X is stuck" issue during kexec from ST
|
||||
mode (regression in 3.13)
|
||||
- spi: core: Ignore unsupported Dual/Quad Transfer Mode bits
|
||||
(regression in 3.12)
|
||||
- libceph: fix corruption when using page_count 0 page in rbd
|
||||
- media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel
|
||||
from user-space
|
||||
http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.7
|
||||
- perf: Limit perf_event_attr::sample_period to 63 bits
|
||||
- perf: Fix race in removing an event
|
||||
- SCSI: scsi_transport_sas: move bsg destructor into sas_rphy_remove
|
||||
(regression in 3.13)
|
||||
- [arm] 8051/1: put_user: fix possible data corruption in put_user
|
||||
- [arm] 8064/1: fix v7-M signal return (regression in 3.11)
|
||||
- cpufreq: remove race while accessing cur_policy
|
||||
- firewire: revert to 4 GB RDMA, fix protocols using Memory Space
|
||||
(regression in 3.14)
|
||||
- [mips] Fix typo when reporting cache and ftlb errors for ImgTec cores
|
||||
(regression in 3.14)
|
||||
- dm cache: always split discards on cache block boundaries
|
||||
- virtio_blk: fix race between start and stop queue
|
||||
- sched/deadline: Restrict user params max value to 2^63 ns
|
||||
- sched/dl: Fix race in dl_task_timer()
|
||||
- drm/radeon: avoid crash if VM command submission isn't available
|
||||
- [x86] drm/i915: Only copy back the modified fields to userspace from
|
||||
execbuffer
|
||||
- drm/radeon/dpm: resume fixes for some systems (regression in 3.14)
|
||||
- libata: Blacklist queued trim for Crucial M500 (regression in 3.14.4)
|
||||
- md: always set MD_RECOVERY_INTR when aborting a reshape or other
|
||||
"resync".
|
||||
- md: always set MD_RECOVERY_INTR when interrupting a reshape thread.
|
||||
(regression in 3.12.9, 3.13)
|
||||
- xhci: delete endpoints from bandwidth list before freeing whole device
|
||||
- staging: comedi: ni_daq_700: add mux settling delay
|
||||
- staging: r8192e_pci: fix htons error (regression in 3.14)
|
||||
- ALSA: hda/analog - Fix silent output on ASUS A8JN (regression in 3.12)
|
||||
- USB: io_ti: fix firmware download on big-endian machines (part 2)
|
||||
- usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports
|
||||
(regression in 3.12)
|
||||
- percpu-refcount: fix usage of this_cpu_ops
|
||||
- [x86] intel_pstate: Remove C0 tracking (regression in 3.14)
|
||||
- [x86] intel_pstate: Correct rounding in busy calculation
|
||||
(regression in 3.14)
|
||||
- [x86] intel_pstate: add sample time scaling
|
||||
- [x86] intel_pstate: Improve initial busy calculation
|
||||
- mm: add !pte_present() check on existing hugetlb_entry callbacks
|
||||
(CVE-2014-3940)
|
||||
- mm: rmap: fix use-after-free in __put_anon_vma
|
||||
- iser-target: Add missing target_put_sess_cmd for ImmedateData failure
|
||||
- iscsi-target: Fix wrong buffer / buffer overrun in
|
||||
iscsi_change_param_value()
|
||||
- target: Fix alua_access_state attribute OOPs for un-configured devices
|
||||
- netfilter: Fix potential use after free in ip6_route_me_harder()
|
||||
- netfilter: nfnetlink: Fix use after free when it fails to process batch
|
||||
- [x86] iommu/vt-d: Fix missing IOTLB flush in intel_iommu_unmap()
|
||||
|
||||
[ Ian Campbell ]
|
||||
* [armhf] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742)
|
||||
* [arm64] Update modules included in installer udebs.
|
||||
* Include virtio_mmio in virtio-modules udeb when available.
|
||||
|
||||
[ Aurelien Jarno ]
|
||||
* topconfig: Enable modular HW_RANDOM.
|
||||
* [kernelarch-powerpc] Remove HW_RANDOM.
|
||||
* [kernelarch-x86] Remove HW_RANDOM.
|
||||
* [mips/4kc-malta] Remove HW_RANDOM.
|
||||
* [mips/5kc-malta] Remove HW_RANDOM.
|
||||
* [mips/octeon] Remove HW_RANDOM.
|
||||
* [arm64] Enable modular RTC_DRV_PL031.
|
||||
|
||||
[ Ben Hutchings ]
|
||||
* [ppc64el] Add kernel image, thanks to Mauricio Faria de Oliveira:
|
||||
- Split common/big-endian powerpc64 options
|
||||
- Add little-endian powerpc64 options
|
||||
- Temporarily disable zImage
|
||||
- powerpc/powernv: Add calls to support little endian host
|
||||
- Add 'ppc64le' (uname output) to bug/include-model script
|
||||
- udeb: Add packages based on ppc64 configuration
|
||||
* netfilter: ipv4: defrag: set local_df flag on defragmented skb
|
||||
(regression in 3.14.5)
|
||||
* [mips] seccomp: Check system calls whenever seccomp is enabled,
|
||||
even if audit and trace are disabled (Closes: #751417)
|
||||
* auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917)
|
||||
* fs,userns: Change inode_capable to capable_wrt_inode_uidgid
|
||||
(CVE-2014-4014)
|
||||
* SCSI: Fix spurious request sense in error handling (regression in 3.14)
|
||||
* PCI/MSI: Fix memory leak in free_msi_irqs() (regression in 3.14)
|
||||
* [rt] hrtimer: Disable MISSED_TIMER_OFFSETS_HIST as it will currently
|
||||
result in a panic
|
||||
|
||||
-- Ben Hutchings <ben@decadent.org.uk> Mon, 16 Jun 2014 09:51:49 +0100
|
||||
|
||||
linux (3.14.5-1) unstable; urgency=high
|
||||
|
||||
* New upstream stable update:
|
||||
|
|
|
@ -6,6 +6,12 @@ CONFIG_ARCH_XGENE=y
|
|||
CONFIG_SMP=y
|
||||
CONFIG_XEN=y
|
||||
|
||||
##
|
||||
## file: drivers/input/misc/Kconfig
|
||||
##
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_UINPUT=m
|
||||
|
||||
##
|
||||
## file: drivers/mmc/Kconfig
|
||||
##
|
||||
|
@ -46,6 +52,11 @@ CONFIG_SMSC911X=m
|
|||
CONFIG_POWER_RESET_VEXPRESS=y
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
|
||||
##
|
||||
## file: drivers/rtc/Kconfig
|
||||
##
|
||||
CONFIG_RTC_DRV_PL031=m
|
||||
|
||||
##
|
||||
## file: drivers/tty/serial/Kconfig
|
||||
##
|
||||
|
|
|
@ -785,3 +785,9 @@ CONFIG_SND_PCXHR=m
|
|||
##
|
||||
# CONFIG_SND_HDA_INTEL is not set
|
||||
|
||||
##
|
||||
## file: drivers/virtio/Kconfig
|
||||
##
|
||||
# CONFIG_VIRTIO_PCI is not set
|
||||
# CONFIG_VIRTIO_BALLOON is not set
|
||||
|
||||
|
|
|
@ -689,6 +689,12 @@ CONFIG_SND_KIRKWOOD_SOC=m
|
|||
CONFIG_SND_KIRKWOOD_SOC_OPENRD=m
|
||||
CONFIG_SND_KIRKWOOD_SOC_T5325=m
|
||||
|
||||
##
|
||||
## file: drivers/virtio/Kconfig
|
||||
##
|
||||
# CONFIG_VIRTIO_PCI is not set
|
||||
# CONFIG_VIRTIO_BALLOON is not set
|
||||
|
||||
##
|
||||
## file: unknown
|
||||
##
|
||||
|
|
|
@ -544,3 +544,9 @@ CONFIG_AX25=m
|
|||
CONFIG_NETROM=m
|
||||
CONFIG_ROSE=m
|
||||
|
||||
##
|
||||
## file: drivers/virtio/Kconfig
|
||||
##
|
||||
# CONFIG_VIRTIO_PCI is not set
|
||||
# CONFIG_VIRTIO_BALLOON is not set
|
||||
|
||||
|
|
|
@ -565,6 +565,12 @@ CONFIG_AX25=m
|
|||
CONFIG_NETROM=m
|
||||
CONFIG_ROSE=m
|
||||
|
||||
##
|
||||
## file: drivers/virtio/Kconfig
|
||||
##
|
||||
# CONFIG_VIRTIO_PCI is not set
|
||||
# CONFIG_VIRTIO_BALLOON is not set
|
||||
|
||||
##
|
||||
## file: unknown
|
||||
##
|
||||
|
|
|
@ -138,7 +138,6 @@ CONFIG_OMAP_INTERCONNECT=m
|
|||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM=m
|
||||
CONFIG_HW_RANDOM_OMAP=m
|
||||
|
||||
##
|
||||
|
|
|
@ -335,7 +335,7 @@ CONFIG_TELCLOCK=m
|
|||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
# CONFIG_HW_RANDOM is not set
|
||||
CONFIG_HW_RANDOM=m
|
||||
# CONFIG_HW_RANDOM_TIMERIOMEM is not set
|
||||
CONFIG_HW_RANDOM_VIRTIO=m
|
||||
CONFIG_HW_RANDOM_TPM=m
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
# CONFIG_PREEMPT_VOLUNTARY is not set
|
||||
CONFIG_PREEMPT_RT_FULL=y
|
||||
CONFIG_SCHED_TRACER=y
|
||||
CONFIG_MISSED_TIMER_OFFSETS_HIST=y
|
||||
#. This option is broken after commit 84ea7fe37908
|
||||
#. ('hrtimer: Set expiry time before switch_hrtimer_base()') but should be
|
||||
#. enabled when this is resolved
|
||||
# CONFIG_MISSED_TIMER_OFFSETS_HIST is not set
|
||||
CONFIG_WAKEUP_LATENCY_HIST=y
|
||||
|
||||
## disable aufs as it's not needed on rt and conflicts with fs-dentry-use-seqlock.patch
|
||||
|
|
|
@ -107,12 +107,6 @@ CONFIG_MTD_PHYSMAP=y
|
|||
CONFIG_THERMAL=y
|
||||
CONFIG_CPU_THERMAL=y
|
||||
|
||||
##
|
||||
## file: drivers/virtio/Kconfig
|
||||
##
|
||||
# CONFIG_VIRTIO_PCI is not set
|
||||
# CONFIG_VIRTIO_BALLOON is not set
|
||||
|
||||
##
|
||||
## file: lib/xz/Kconfig
|
||||
##
|
||||
|
|
|
@ -10,6 +10,7 @@ CONFIG_NUMA=y
|
|||
CONFIG_SCHED_SMT=y
|
||||
CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0"
|
||||
CONFIG_KERNEL_START=0xc000000000000000
|
||||
CONFIG_PPC_TRANSACTIONAL_MEM=y
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/Kconfig
|
||||
|
@ -18,16 +19,6 @@ CONFIG_RTAS_PROC=y
|
|||
CONFIG_RTAS_FLASH=m
|
||||
CONFIG_IBMEBUS=y
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/cell/Kconfig
|
||||
##
|
||||
CONFIG_PPC_IBM_CELL_BLADE=y
|
||||
# CONFIG_PPC_CELLEB is not set
|
||||
CONFIG_SPU_FS=m
|
||||
CONFIG_SPU_FS_64K_LS=y
|
||||
CONFIG_CBE_RAS=y
|
||||
CONFIG_CBE_THERM=m
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/Kconfig.cputype
|
||||
##
|
||||
|
@ -35,33 +26,6 @@ CONFIG_PPC64=y
|
|||
# CONFIG_TUNE_CELL is not set
|
||||
CONFIG_ALTIVEC=y
|
||||
CONFIG_SMP=y
|
||||
CONFIG_NR_CPUS=32
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/maple/Kconfig
|
||||
##
|
||||
CONFIG_PPC_MAPLE=y
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/pasemi/Kconfig
|
||||
##
|
||||
CONFIG_PPC_PASEMI=y
|
||||
CONFIG_PPC_PASEMI_MDIO=m
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/ps3/Kconfig
|
||||
##
|
||||
CONFIG_PPC_PS3=y
|
||||
CONFIG_PS3_ADVANCED=y
|
||||
CONFIG_PS3_HTAB_SIZE=20
|
||||
# CONFIG_PS3_DYNAMIC_DMA is not set
|
||||
CONFIG_PS3_PS3AV=y
|
||||
CONFIG_PS3_SYS_MANAGER=y
|
||||
CONFIG_PS3_DISK=m
|
||||
CONFIG_PS3_ROM=m
|
||||
CONFIG_PS3_FLASH=m
|
||||
CONFIG_PS3_VRAM=m
|
||||
CONFIG_PS3_LPM=m
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/pseries/Kconfig
|
||||
|
@ -90,29 +54,6 @@ CONFIG_BLK_DEV_RSXX=m
|
|||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM=m
|
||||
CONFIG_HW_RANDOM_PASEMI=m
|
||||
|
||||
##
|
||||
## file: drivers/cpufreq/Kconfig.powerpc
|
||||
##
|
||||
CONFIG_CPU_FREQ_CBE=m
|
||||
CONFIG_CPU_FREQ_PMAC64=y
|
||||
#. It's a bool
|
||||
CONFIG_PPC_PASEMI_CPUFREQ=y
|
||||
|
||||
##
|
||||
## file: drivers/i2c/busses/Kconfig
|
||||
##
|
||||
CONFIG_I2C_PASEMI=m
|
||||
|
||||
##
|
||||
## file: drivers/macintosh/Kconfig
|
||||
##
|
||||
CONFIG_WINDFARM=m
|
||||
CONFIG_WINDFARM_PM81=m
|
||||
CONFIG_WINDFARM_PM91=m
|
||||
CONFIG_WINDFARM_PM112=m
|
||||
|
||||
##
|
||||
## file: drivers/net/ethernet/ibm/Kconfig
|
||||
|
@ -136,28 +77,11 @@ CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0
|
|||
##
|
||||
# CONFIG_MV643XX_ETH is not set
|
||||
|
||||
##
|
||||
## file: drivers/net/ethernet/pasemi/Kconfig
|
||||
##
|
||||
CONFIG_PASEMI_MAC=m
|
||||
|
||||
##
|
||||
## file: drivers/net/ethernet/toshiba/Kconfig
|
||||
##
|
||||
CONFIG_GELIC_NET=m
|
||||
CONFIG_GELIC_WIRELESS=y
|
||||
CONFIG_SPIDER_NET=m
|
||||
|
||||
##
|
||||
## file: drivers/pci/hotplug/Kconfig
|
||||
##
|
||||
# CONFIG_HOTPLUG_PCI is not set
|
||||
|
||||
##
|
||||
## file: drivers/rtc/Kconfig
|
||||
##
|
||||
CONFIG_RTC_DRV_PS3=m
|
||||
|
||||
##
|
||||
## file: drivers/scsi/Kconfig
|
||||
##
|
||||
|
@ -189,8 +113,6 @@ CONFIG_HVCS=m
|
|||
# CONFIG_FB_VALKYRIE is not set
|
||||
# CONFIG_FB_IMSTT is not set
|
||||
# CONFIG_FB_ATY128 is not set
|
||||
CONFIG_FB_PS3=y
|
||||
CONFIG_FB_PS3_DEFAULT_SIZE_M=9
|
||||
|
||||
##
|
||||
## file: drivers/watchdog/Kconfig
|
||||
|
@ -207,9 +129,3 @@ CONFIG_SPARSEMEM_MANUAL=y
|
|||
## end choice
|
||||
CONFIG_SPARSEMEM_VMEMMAP=y
|
||||
|
||||
##
|
||||
## file: sound/ppc/Kconfig
|
||||
##
|
||||
CONFIG_SND_PS3=m
|
||||
CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
|
||||
|
||||
|
|
|
@ -0,0 +1,96 @@
|
|||
##
|
||||
## file: arch/powerpc/platforms/Kconfig.cputype
|
||||
##
|
||||
CONFIG_NR_CPUS=32
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/cell/Kconfig
|
||||
##
|
||||
CONFIG_PPC_IBM_CELL_BLADE=y
|
||||
# CONFIG_PPC_CELLEB is not set
|
||||
CONFIG_SPU_FS=m
|
||||
CONFIG_SPU_FS_64K_LS=y
|
||||
CONFIG_CBE_RAS=y
|
||||
CONFIG_CBE_THERM=m
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/maple/Kconfig
|
||||
##
|
||||
CONFIG_PPC_MAPLE=y
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/pasemi/Kconfig
|
||||
##
|
||||
CONFIG_PPC_PASEMI=y
|
||||
CONFIG_PPC_PASEMI_MDIO=m
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/ps3/Kconfig
|
||||
##
|
||||
CONFIG_PPC_PS3=y
|
||||
CONFIG_PS3_ADVANCED=y
|
||||
CONFIG_PS3_HTAB_SIZE=20
|
||||
# CONFIG_PS3_DYNAMIC_DMA is not set
|
||||
CONFIG_PS3_PS3AV=y
|
||||
CONFIG_PS3_SYS_MANAGER=y
|
||||
CONFIG_PS3_DISK=m
|
||||
CONFIG_PS3_ROM=m
|
||||
CONFIG_PS3_FLASH=m
|
||||
CONFIG_PS3_VRAM=m
|
||||
CONFIG_PS3_LPM=m
|
||||
|
||||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM_PASEMI=m
|
||||
|
||||
##
|
||||
## file: drivers/cpufreq/Kconfig.powerpc
|
||||
##
|
||||
CONFIG_CPU_FREQ_CBE=m
|
||||
CONFIG_CPU_FREQ_PMAC64=y
|
||||
#. It's a bool
|
||||
CONFIG_PPC_PASEMI_CPUFREQ=y
|
||||
|
||||
##
|
||||
## file: drivers/i2c/busses/Kconfig
|
||||
##
|
||||
CONFIG_I2C_PASEMI=m
|
||||
|
||||
##
|
||||
## file: drivers/macintosh/Kconfig
|
||||
##
|
||||
CONFIG_WINDFARM=m
|
||||
CONFIG_WINDFARM_PM81=m
|
||||
CONFIG_WINDFARM_PM91=m
|
||||
CONFIG_WINDFARM_PM112=m
|
||||
|
||||
##
|
||||
## file: drivers/net/ethernet/pasemi/Kconfig
|
||||
##
|
||||
CONFIG_PASEMI_MAC=m
|
||||
|
||||
##
|
||||
## file: drivers/net/ethernet/toshiba/Kconfig
|
||||
##
|
||||
CONFIG_GELIC_NET=m
|
||||
CONFIG_GELIC_WIRELESS=y
|
||||
CONFIG_SPIDER_NET=m
|
||||
|
||||
##
|
||||
## file: drivers/rtc/Kconfig
|
||||
##
|
||||
CONFIG_RTC_DRV_PS3=m
|
||||
|
||||
##
|
||||
## file: drivers/video/Kconfig
|
||||
##
|
||||
CONFIG_FB_PS3=y
|
||||
CONFIG_FB_PS3_DEFAULT_SIZE_M=9
|
||||
|
||||
##
|
||||
## file: sound/ppc/Kconfig
|
||||
##
|
||||
CONFIG_SND_PS3=m
|
||||
CONFIG_SND_PS3_DEFAULT_START_DELAY=2000
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
##
|
||||
## file: arch/powerpc/Kconfig
|
||||
##
|
||||
## choice: Page size
|
||||
# CONFIG_PPC_4K_PAGES is not set
|
||||
CONFIG_PPC_64K_PAGES=y
|
||||
## end choice
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/Kconfig.cputype
|
||||
##
|
||||
## choice: Endianness selection
|
||||
# CONFIG_CPU_BIG_ENDIAN is not set
|
||||
CONFIG_CPU_LITTLE_ENDIAN=y
|
||||
## end choice
|
||||
CONFIG_NR_CPUS=2048
|
||||
|
||||
##
|
||||
## file: arch/powerpc/platforms/powermac/Kconfig
|
||||
##
|
||||
#. This needs to be explicitly disabled currently (3.15)
|
||||
# CONFIG_PPC_PMAC is not set
|
||||
|
||||
##
|
||||
## file: drivers/cpufreq/Kconfig
|
||||
##
|
||||
## choice: Default CPUFreq governor
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
|
||||
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y
|
||||
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
|
||||
## end choice
|
||||
|
|
@ -310,7 +310,6 @@ CONFIG_AGP_VIA=y
|
|||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM=m
|
||||
CONFIG_HW_RANDOM_INTEL=m
|
||||
CONFIG_HW_RANDOM_AMD=m
|
||||
CONFIG_HW_RANDOM_GEODE=m
|
||||
|
|
|
@ -166,11 +166,6 @@ CONFIG_PPDEV=m
|
|||
CONFIG_R3964=m
|
||||
CONFIG_APPLICOM=m
|
||||
|
||||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM=m
|
||||
|
||||
##
|
||||
## file: drivers/char/ipmi/Kconfig
|
||||
##
|
||||
|
|
|
@ -169,11 +169,6 @@ CONFIG_PPDEV=m
|
|||
CONFIG_R3964=m
|
||||
CONFIG_APPLICOM=m
|
||||
|
||||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM=m
|
||||
|
||||
##
|
||||
## file: drivers/char/ipmi/Kconfig
|
||||
##
|
||||
|
|
|
@ -37,7 +37,6 @@ CONFIG_PATA_OCTEON_CF=y
|
|||
##
|
||||
## file: drivers/char/hw_random/Kconfig
|
||||
##
|
||||
CONFIG_HW_RANDOM=m
|
||||
CONFIG_HW_RANDOM_OCTEON=m
|
||||
|
||||
##
|
||||
|
|
|
@ -30,4 +30,4 @@ configs: powerpc/config.powerpc powerpc/config.powerpc-smp
|
|||
hardware: 64-bit PowerPC
|
||||
|
||||
[powerpc64_image]
|
||||
configs: kernelarch-powerpc/config-arch-64
|
||||
configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be
|
||||
|
|
|
@ -19,4 +19,4 @@ gcc-4.8: gcc-4.8 (>= 4.8.2-21)
|
|||
hardware: 64-bit PowerPC
|
||||
|
||||
[powerpc64_image]
|
||||
configs: kernelarch-powerpc/config-arch-64
|
||||
configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be
|
||||
|
|
|
@ -1,4 +1,18 @@
|
|||
[base]
|
||||
flavours:
|
||||
powerpc64le
|
||||
kernel-arch: powerpc
|
||||
featuresets:
|
||||
# empty
|
||||
|
||||
[build]
|
||||
image-file: vmlinux
|
||||
|
||||
[image]
|
||||
configs:
|
||||
suggests: mkvmlinuz
|
||||
install-stem: vmlinux
|
||||
|
||||
[powerpc64le_description]
|
||||
hardware: Little-endian 64-bit PowerPC
|
||||
|
||||
[powerpc64le_image]
|
||||
configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-le
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
#include <nic-modules>
|
||||
smc91x
|
||||
smsc911x
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
#include <scsi-modules>
|
||||
|
||||
sg
|
||||
xen-blkfront
|
||||
|
|
|
@ -5,3 +5,4 @@ virtio_scsi
|
|||
|
||||
# Some architectures do not have PCI bus
|
||||
virtio_pci ?
|
||||
virtio_mmio ?
|
||||
|
|
|
@ -0,0 +1,2 @@
|
|||
# arch version flavour installedname suffix build-depends
|
||||
ppc64el - powerpc64le - - -
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/ata-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/btrfs-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/cdrom-core-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/core-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/crc-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/crypto-dm-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/crypto-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/event-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/ext4-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/fancontrol-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/fat-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/firewire-core-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/fuse-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/hypervisor-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/input-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/isofs-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/jfs-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/kernel-image"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/loop-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/md-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/mouse-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/multipath-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/nbd-modules"
|
|
@ -0,0 +1,5 @@
|
|||
#include "../../../ppc64/modules/ppc64/nic-modules"
|
||||
|
||||
airport -
|
||||
ps3_gelic -
|
||||
spidernet -
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/nic-shared-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/ppp-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/sata-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/scsi-common-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/scsi-core-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/scsi-extra-modules"
|
|
@ -0,0 +1,3 @@
|
|||
#include "../../../ppc64/modules/ppc64/scsi-modules"
|
||||
|
||||
ps3rom -
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/serial-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/squashfs-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/udf-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/uinput-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/usb-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/usb-serial-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/usb-storage-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/virtio-modules"
|
|
@ -0,0 +1 @@
|
|||
#include "../../../ppc64/modules/ppc64/xfs-modules"
|
|
@ -0,0 +1 @@
|
|||
../ppc64/package-list
|
|
@ -0,0 +1,33 @@
|
|||
From: Alexei Starovoitov <ast@plumgrid.com>
|
||||
Date: Wed, 4 Jun 2014 15:49:50 -0700
|
||||
Subject: PCI/MSI: Fix memory leak in free_msi_irqs()
|
||||
Origin: https://git.kernel.org/linus/b701c0b1fe819a2083fc6ec5332e0e4492b9516d
|
||||
|
||||
free_msi_irqs() is leaking memory, since list_for_each_entry(entry,
|
||||
&dev->msi_list, list) {...} is never executed, because dev->msi_list is
|
||||
made empty by the loop just above this one.
|
||||
|
||||
Fix it by relying on zero termination of attribute array like
|
||||
populate_msi_sysfs() does.
|
||||
|
||||
Fixes: 1c51b50c2995 ("PCI/MSI: Export MSI mode using attributes, not kobjects")
|
||||
Signed-off-by: Alexei Starovoitov <ast@plumgrid.com>
|
||||
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
|
||||
Acked-by: Neil Horman <nhorman@tuxdriver.com>
|
||||
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
||||
CC: stable@vger.kernel.org # v3.14+
|
||||
---
|
||||
drivers/pci/msi.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
--- a/drivers/pci/msi.c
|
||||
+++ b/drivers/pci/msi.c
|
||||
@@ -414,7 +414,7 @@ static void free_msi_irqs(struct pci_dev
|
||||
if (dev->msi_irq_groups) {
|
||||
sysfs_remove_groups(&dev->dev.kobj, dev->msi_irq_groups);
|
||||
msi_attrs = dev->msi_irq_groups[0]->attrs;
|
||||
- list_for_each_entry(entry, &dev->msi_list, list) {
|
||||
+ while (msi_attrs[count]) {
|
||||
dev_attr = container_of(msi_attrs[count],
|
||||
struct device_attribute, attr);
|
||||
kfree(dev_attr->attr.name);
|
80
debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
vendored
Normal file
80
debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
vendored
Normal file
|
@ -0,0 +1,80 @@
|
|||
From: Andy Lutomirski <luto@amacapital.net>
|
||||
Date: Wed, 28 May 2014 23:09:58 -0400
|
||||
Subject: auditsc: audit_krule mask accesses need bounds checking
|
||||
Origin: https://git.kernel.org/linus/a3c54931199565930d6d84f4c3456f6440aefd41
|
||||
|
||||
Fixes an easy DoS and possible information disclosure.
|
||||
|
||||
This does nothing about the broken state of x32 auditing.
|
||||
|
||||
eparis: If the admin has enabled auditd and has specifically loaded
|
||||
audit rules. This bug has been around since before git. Wow...
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
|
||||
Signed-off-by: Eric Paris <eparis@redhat.com>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
kernel/auditsc.c | 27 ++++++++++++++++++---------
|
||||
1 file changed, 18 insertions(+), 9 deletions(-)
|
||||
|
||||
--- a/kernel/auditsc.c
|
||||
+++ b/kernel/auditsc.c
|
||||
@@ -720,6 +720,22 @@ static enum audit_state audit_filter_tas
|
||||
return AUDIT_BUILD_CONTEXT;
|
||||
}
|
||||
|
||||
+static int audit_in_mask(const struct audit_krule *rule, unsigned long val)
|
||||
+{
|
||||
+ int word, bit;
|
||||
+
|
||||
+ if (val > 0xffffffff)
|
||||
+ return false;
|
||||
+
|
||||
+ word = AUDIT_WORD(val);
|
||||
+ if (word >= AUDIT_BITMASK_SIZE)
|
||||
+ return false;
|
||||
+
|
||||
+ bit = AUDIT_BIT(val);
|
||||
+
|
||||
+ return rule->mask[word] & bit;
|
||||
+}
|
||||
+
|
||||
/* At syscall entry and exit time, this filter is called if the
|
||||
* audit_state is not low enough that auditing cannot take place, but is
|
||||
* also not high enough that we already know we have to write an audit
|
||||
@@ -737,11 +753,8 @@ static enum audit_state audit_filter_sys
|
||||
|
||||
rcu_read_lock();
|
||||
if (!list_empty(list)) {
|
||||
- int word = AUDIT_WORD(ctx->major);
|
||||
- int bit = AUDIT_BIT(ctx->major);
|
||||
-
|
||||
list_for_each_entry_rcu(e, list, list) {
|
||||
- if ((e->rule.mask[word] & bit) == bit &&
|
||||
+ if (audit_in_mask(&e->rule, ctx->major) &&
|
||||
audit_filter_rules(tsk, &e->rule, ctx, NULL,
|
||||
&state, false)) {
|
||||
rcu_read_unlock();
|
||||
@@ -761,20 +774,16 @@ static enum audit_state audit_filter_sys
|
||||
static int audit_filter_inode_name(struct task_struct *tsk,
|
||||
struct audit_names *n,
|
||||
struct audit_context *ctx) {
|
||||
- int word, bit;
|
||||
int h = audit_hash_ino((u32)n->ino);
|
||||
struct list_head *list = &audit_inode_hash[h];
|
||||
struct audit_entry *e;
|
||||
enum audit_state state;
|
||||
|
||||
- word = AUDIT_WORD(ctx->major);
|
||||
- bit = AUDIT_BIT(ctx->major);
|
||||
-
|
||||
if (list_empty(list))
|
||||
return 0;
|
||||
|
||||
list_for_each_entry_rcu(e, list, list) {
|
||||
- if ((e->rule.mask[word] & bit) == bit &&
|
||||
+ if (audit_in_mask(&e->rule, ctx->major) &&
|
||||
audit_filter_rules(tsk, &e->rule, ctx, n, &state, false)) {
|
||||
ctx->current_state = state;
|
||||
return 1;
|
191
debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
vendored
Normal file
191
debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
vendored
Normal file
|
@ -0,0 +1,191 @@
|
|||
From: Andy Lutomirski <luto@amacapital.net>
|
||||
Date: Tue, 10 Jun 2014 12:45:42 -0700
|
||||
Subject: fs,userns: Change inode_capable to capable_wrt_inode_uidgid
|
||||
Origin: https://git.kernel.org/linus/23adbe12ef7d3d4195e80800ab36b37bee28cd03
|
||||
|
||||
The kernel has no concept of capabilities with respect to inodes; inodes
|
||||
exist independently of namespaces. For example, inode_capable(inode,
|
||||
CAP_LINUX_IMMUTABLE) would be nonsense.
|
||||
|
||||
This patch changes inode_capable to check for uid and gid mappings and
|
||||
renames it to capable_wrt_inode_uidgid, which should make it more
|
||||
obvious what it does.
|
||||
|
||||
Fixes CVE-2014-4014.
|
||||
|
||||
Cc: Theodore Ts'o <tytso@mit.edu>
|
||||
Cc: Serge Hallyn <serge.hallyn@ubuntu.com>
|
||||
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
|
||||
Cc: Dave Chinner <david@fromorbit.com>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
|
||||
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
|
||||
---
|
||||
fs/attr.c | 8 ++++----
|
||||
fs/inode.c | 10 +++++++---
|
||||
fs/namei.c | 11 ++++++-----
|
||||
fs/xfs/xfs_ioctl.c | 2 +-
|
||||
include/linux/capability.h | 2 +-
|
||||
kernel/capability.c | 20 ++++++++------------
|
||||
6 files changed, 27 insertions(+), 26 deletions(-)
|
||||
|
||||
--- a/fs/attr.c
|
||||
+++ b/fs/attr.c
|
||||
@@ -50,14 +50,14 @@ int inode_change_ok(const struct inode *
|
||||
if ((ia_valid & ATTR_UID) &&
|
||||
(!uid_eq(current_fsuid(), inode->i_uid) ||
|
||||
!uid_eq(attr->ia_uid, inode->i_uid)) &&
|
||||
- !inode_capable(inode, CAP_CHOWN))
|
||||
+ !capable_wrt_inode_uidgid(inode, CAP_CHOWN))
|
||||
return -EPERM;
|
||||
|
||||
/* Make sure caller can chgrp. */
|
||||
if ((ia_valid & ATTR_GID) &&
|
||||
(!uid_eq(current_fsuid(), inode->i_uid) ||
|
||||
(!in_group_p(attr->ia_gid) && !gid_eq(attr->ia_gid, inode->i_gid))) &&
|
||||
- !inode_capable(inode, CAP_CHOWN))
|
||||
+ !capable_wrt_inode_uidgid(inode, CAP_CHOWN))
|
||||
return -EPERM;
|
||||
|
||||
/* Make sure a caller can chmod. */
|
||||
@@ -67,7 +67,7 @@ int inode_change_ok(const struct inode *
|
||||
/* Also check the setgid bit! */
|
||||
if (!in_group_p((ia_valid & ATTR_GID) ? attr->ia_gid :
|
||||
inode->i_gid) &&
|
||||
- !inode_capable(inode, CAP_FSETID))
|
||||
+ !capable_wrt_inode_uidgid(inode, CAP_FSETID))
|
||||
attr->ia_mode &= ~S_ISGID;
|
||||
}
|
||||
|
||||
@@ -160,7 +160,7 @@ void setattr_copy(struct inode *inode, c
|
||||
umode_t mode = attr->ia_mode;
|
||||
|
||||
if (!in_group_p(inode->i_gid) &&
|
||||
- !inode_capable(inode, CAP_FSETID))
|
||||
+ !capable_wrt_inode_uidgid(inode, CAP_FSETID))
|
||||
mode &= ~S_ISGID;
|
||||
inode->i_mode = mode;
|
||||
}
|
||||
--- a/fs/inode.c
|
||||
+++ b/fs/inode.c
|
||||
@@ -1842,14 +1842,18 @@ EXPORT_SYMBOL(inode_init_owner);
|
||||
* inode_owner_or_capable - check current task permissions to inode
|
||||
* @inode: inode being checked
|
||||
*
|
||||
- * Return true if current either has CAP_FOWNER to the inode, or
|
||||
- * owns the file.
|
||||
+ * Return true if current either has CAP_FOWNER in a namespace with the
|
||||
+ * inode owner uid mapped, or owns the file.
|
||||
*/
|
||||
bool inode_owner_or_capable(const struct inode *inode)
|
||||
{
|
||||
+ struct user_namespace *ns;
|
||||
+
|
||||
if (uid_eq(current_fsuid(), inode->i_uid))
|
||||
return true;
|
||||
- if (inode_capable(inode, CAP_FOWNER))
|
||||
+
|
||||
+ ns = current_user_ns();
|
||||
+ if (ns_capable(ns, CAP_FOWNER) && kuid_has_mapping(ns, inode->i_uid))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
--- a/fs/namei.c
|
||||
+++ b/fs/namei.c
|
||||
@@ -332,10 +332,11 @@ int generic_permission(struct inode *ino
|
||||
|
||||
if (S_ISDIR(inode->i_mode)) {
|
||||
/* DACs are overridable for directories */
|
||||
- if (inode_capable(inode, CAP_DAC_OVERRIDE))
|
||||
+ if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
|
||||
return 0;
|
||||
if (!(mask & MAY_WRITE))
|
||||
- if (inode_capable(inode, CAP_DAC_READ_SEARCH))
|
||||
+ if (capable_wrt_inode_uidgid(inode,
|
||||
+ CAP_DAC_READ_SEARCH))
|
||||
return 0;
|
||||
return -EACCES;
|
||||
}
|
||||
@@ -345,7 +346,7 @@ int generic_permission(struct inode *ino
|
||||
* at least one exec bit set.
|
||||
*/
|
||||
if (!(mask & MAY_EXEC) || (inode->i_mode & S_IXUGO))
|
||||
- if (inode_capable(inode, CAP_DAC_OVERRIDE))
|
||||
+ if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
|
||||
return 0;
|
||||
|
||||
/*
|
||||
@@ -353,7 +354,7 @@ int generic_permission(struct inode *ino
|
||||
*/
|
||||
mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
|
||||
if (mask == MAY_READ)
|
||||
- if (inode_capable(inode, CAP_DAC_READ_SEARCH))
|
||||
+ if (capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
|
||||
return 0;
|
||||
|
||||
return -EACCES;
|
||||
@@ -2370,7 +2371,7 @@ static inline int check_sticky(struct in
|
||||
return 0;
|
||||
if (uid_eq(dir->i_uid, fsuid))
|
||||
return 0;
|
||||
- return !inode_capable(inode, CAP_FOWNER);
|
||||
+ return !capable_wrt_inode_uidgid(inode, CAP_FOWNER);
|
||||
}
|
||||
|
||||
/*
|
||||
--- a/fs/xfs/xfs_ioctl.c
|
||||
+++ b/fs/xfs/xfs_ioctl.c
|
||||
@@ -1241,7 +1241,7 @@ xfs_ioctl_setattr(
|
||||
* cleared upon successful return from chown()
|
||||
*/
|
||||
if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) &&
|
||||
- !inode_capable(VFS_I(ip), CAP_FSETID))
|
||||
+ !capable_wrt_inode_uidgid(VFS_I(ip), CAP_FSETID))
|
||||
ip->i_d.di_mode &= ~(S_ISUID|S_ISGID);
|
||||
|
||||
/*
|
||||
--- a/include/linux/capability.h
|
||||
+++ b/include/linux/capability.h
|
||||
@@ -210,7 +210,7 @@ extern bool has_ns_capability_noaudit(st
|
||||
struct user_namespace *ns, int cap);
|
||||
extern bool capable(int cap);
|
||||
extern bool ns_capable(struct user_namespace *ns, int cap);
|
||||
-extern bool inode_capable(const struct inode *inode, int cap);
|
||||
+extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
|
||||
extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
|
||||
|
||||
/* audit system wants to get cap info from files as well */
|
||||
--- a/kernel/capability.c
|
||||
+++ b/kernel/capability.c
|
||||
@@ -433,23 +433,19 @@ bool capable(int cap)
|
||||
EXPORT_SYMBOL(capable);
|
||||
|
||||
/**
|
||||
- * inode_capable - Check superior capability over inode
|
||||
+ * capable_wrt_inode_uidgid - Check nsown_capable and uid and gid mapped
|
||||
* @inode: The inode in question
|
||||
* @cap: The capability in question
|
||||
*
|
||||
- * Return true if the current task has the given superior capability
|
||||
- * targeted at it's own user namespace and that the given inode is owned
|
||||
- * by the current user namespace or a child namespace.
|
||||
- *
|
||||
- * Currently we check to see if an inode is owned by the current
|
||||
- * user namespace by seeing if the inode's owner maps into the
|
||||
- * current user namespace.
|
||||
- *
|
||||
+ * Return true if the current task has the given capability targeted at
|
||||
+ * its own user namespace and that the given inode's uid and gid are
|
||||
+ * mapped into the current user namespace.
|
||||
*/
|
||||
-bool inode_capable(const struct inode *inode, int cap)
|
||||
+bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
|
||||
{
|
||||
struct user_namespace *ns = current_user_ns();
|
||||
|
||||
- return ns_capable(ns, cap) && kuid_has_mapping(ns, inode->i_uid);
|
||||
+ return ns_capable(ns, cap) && kuid_has_mapping(ns, inode->i_uid) &&
|
||||
+ kgid_has_mapping(ns, inode->i_gid);
|
||||
}
|
||||
-EXPORT_SYMBOL(inode_capable);
|
||||
+EXPORT_SYMBOL(capable_wrt_inode_uidgid);
|
105
debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch
vendored
Normal file
105
debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch
vendored
Normal file
|
@ -0,0 +1,105 @@
|
|||
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
Date: Tue, 20 May 2014 11:01:28 +1000
|
||||
Subject: powerpc/powernv: Add calls to support little endian host
|
||||
Origin: https://git.kernel.org/linus/4926616c77435e735c59288f838e7761baec4a6c
|
||||
|
||||
When running as a powernv "host" system on P8, we need to switch
|
||||
the endianness of interrupt handlers. This does it via the appropriate
|
||||
call to the OPAL firmware which may result in just switching HID0:HILE
|
||||
but depending on the processor version might need to do a few more
|
||||
things. This call must be done early before any other processor has
|
||||
been brought out of firmware.
|
||||
|
||||
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
Signed-off-by: Andy Whitcroft <apw@canonical.com>
|
||||
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
||||
---
|
||||
arch/powerpc/include/asm/opal.h | 7 +++++++
|
||||
arch/powerpc/platforms/powernv/opal-wrappers.S | 1 +
|
||||
arch/powerpc/platforms/powernv/opal.c | 22 ++++++++++++++++++++++
|
||||
3 files changed, 30 insertions(+)
|
||||
|
||||
diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
|
||||
index 81720ff..ea8bba7 100644
|
||||
--- a/arch/powerpc/include/asm/opal.h
|
||||
+++ b/arch/powerpc/include/asm/opal.h
|
||||
@@ -154,6 +154,7 @@ extern int opal_enter_rtas(struct rtas_args *args,
|
||||
#define OPAL_LPC_READ 67
|
||||
#define OPAL_LPC_WRITE 68
|
||||
#define OPAL_RETURN_CPU 69
|
||||
+#define OPAL_REINIT_CPUS 70
|
||||
#define OPAL_ELOG_READ 71
|
||||
#define OPAL_ELOG_WRITE 72
|
||||
#define OPAL_ELOG_ACK 73
|
||||
@@ -725,6 +726,11 @@ struct OpalIoPhb3ErrorData {
|
||||
uint64_t pestB[OPAL_PHB3_NUM_PEST_REGS];
|
||||
};
|
||||
|
||||
+enum {
|
||||
+ OPAL_REINIT_CPUS_HILE_BE = (1 << 0),
|
||||
+ OPAL_REINIT_CPUS_HILE_LE = (1 << 1),
|
||||
+};
|
||||
+
|
||||
typedef struct oppanel_line {
|
||||
const char * line;
|
||||
uint64_t line_len;
|
||||
@@ -849,6 +855,7 @@ int64_t opal_pci_next_error(uint64_t phb_id, uint64_t *first_frozen_pe,
|
||||
uint16_t *pci_error_type, uint16_t *severity);
|
||||
int64_t opal_pci_poll(uint64_t phb_id);
|
||||
int64_t opal_return_cpu(void);
|
||||
+int64_t opal_reinit_cpus(uint64_t flags);
|
||||
|
||||
int64_t opal_xscom_read(uint32_t gcid, uint64_t pcb_addr, __be64 *val);
|
||||
int64_t opal_xscom_write(uint32_t gcid, uint64_t pcb_addr, uint64_t val);
|
||||
diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S
|
||||
index b5ebc54..4abbff2 100644
|
||||
--- a/arch/powerpc/platforms/powernv/opal-wrappers.S
|
||||
+++ b/arch/powerpc/platforms/powernv/opal-wrappers.S
|
||||
@@ -124,6 +124,7 @@ OPAL_CALL(opal_xscom_write, OPAL_XSCOM_WRITE);
|
||||
OPAL_CALL(opal_lpc_read, OPAL_LPC_READ);
|
||||
OPAL_CALL(opal_lpc_write, OPAL_LPC_WRITE);
|
||||
OPAL_CALL(opal_return_cpu, OPAL_RETURN_CPU);
|
||||
+OPAL_CALL(opal_reinit_cpus, OPAL_REINIT_CPUS);
|
||||
OPAL_CALL(opal_read_elog, OPAL_ELOG_READ);
|
||||
OPAL_CALL(opal_send_ack_elog, OPAL_ELOG_ACK);
|
||||
OPAL_CALL(opal_get_elog_size, OPAL_ELOG_SIZE);
|
||||
diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c
|
||||
index 360ad80c..539243e 100644
|
||||
--- a/arch/powerpc/platforms/powernv/opal.c
|
||||
+++ b/arch/powerpc/platforms/powernv/opal.c
|
||||
@@ -57,6 +57,21 @@ static DEFINE_SPINLOCK(opal_notifier_lock);
|
||||
static uint64_t last_notified_mask = 0x0ul;
|
||||
static atomic_t opal_notifier_hold = ATOMIC_INIT(0);
|
||||
|
||||
+static void opal_reinit_cores(void)
|
||||
+{
|
||||
+ /* Do the actual re-init, This will clobber all FPRs, VRs, etc...
|
||||
+ *
|
||||
+ * It will preserve non volatile GPRs and HSPRG0/1. It will
|
||||
+ * also restore HIDs and other SPRs to their original value
|
||||
+ * but it might clobber a bunch.
|
||||
+ */
|
||||
+#ifdef __BIG_ENDIAN__
|
||||
+ opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE);
|
||||
+#else
|
||||
+ opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_LE);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
int __init early_init_dt_scan_opal(unsigned long node,
|
||||
const char *uname, int depth, void *data)
|
||||
{
|
||||
@@ -96,6 +111,13 @@ int __init early_init_dt_scan_opal(unsigned long node,
|
||||
printk("OPAL V1 detected !\n");
|
||||
}
|
||||
|
||||
+ /* Reinit all cores with the right endian */
|
||||
+ opal_reinit_cores();
|
||||
+
|
||||
+ /* Restore some bits */
|
||||
+ if (cur_cpu_spec->cpu_restore)
|
||||
+ cur_cpu_spec->cpu_restore();
|
||||
+
|
||||
return 1;
|
||||
}
|
||||
|
|
@ -0,0 +1,49 @@
|
|||
From: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
|
||||
Date: Wed, 4 Jun 2014 09:06:27 -0300
|
||||
Subject: ppc64el: kernel: patch: temporarily disable zImage
|
||||
|
||||
Debian ppc64el will wait for the 'powerpc/boot: 64bit little endian wrapper'
|
||||
(zImage) patches upstream rather than shipping 32-bit tools for zImage. The
|
||||
patches are currently in Ben Herrenschmidt's linux-next tree [1].
|
||||
|
||||
The patches are not being carried over instead of this workaround because,
|
||||
even without both, the build process does produces vmlinux, only failing for
|
||||
zImage. So, it's ok to just work-around this for now, as we pick vmlinux.
|
||||
|
||||
The workaround patch just avoids this build error:
|
||||
|
||||
[...]
|
||||
LD vmlinux
|
||||
SYSMAP System.map
|
||||
[...]
|
||||
WRAP arch/powerpc/boot/zImage.pseries
|
||||
ld: unrecognised emulation mode: elf32ppc
|
||||
Supported emulations: elf64lppc elf32lppc elf32lppclinux elf32lppcsim
|
||||
make[6]: *** [arch/powerpc/boot/zImage.pseries] Error 1
|
||||
make[5]: *** [zImage] Error 2
|
||||
|
||||
[1] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=powerpc%2Fboot
|
||||
(15 commits with message prefix 'powerpc/boot:' dated of 2014-04-28)
|
||||
|
||||
Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
|
||||
---
|
||||
Index: linux-3.14.2/arch/powerpc/boot/Makefile
|
||||
===================================================================
|
||||
--- linux-3.14.2.orig/arch/powerpc/boot/Makefile 2014-05-02 16:52:37.000000000 -0300
|
||||
+++ linux-3.14.2/arch/powerpc/boot/Makefile 2014-05-07 09:39:11.000000000 -0300
|
||||
@@ -344,6 +344,15 @@
|
||||
$(obj)/%.dtb: $(src)/dts/%.dts FORCE
|
||||
$(call if_changed_dep,dtc)
|
||||
|
||||
+# Debian ppc64el will wait for the 'powerpc/boot: 64bit little endian wrapper'
|
||||
+# (zImage) patches upstream rather than shipping 32-bit tools for zImage.
|
||||
+# This makes the next conditional block to pick vmlinux.strip as image-y.
|
||||
+ifdef CONFIG_PPC64
|
||||
+ifdef CONFIG_CPU_LITTLE_ENDIAN
|
||||
+image-y :=
|
||||
+endif
|
||||
+endif
|
||||
+
|
||||
# If there isn't a platform selected then just strip the vmlinux.
|
||||
ifeq (,$(image-y))
|
||||
image-y := vmlinux.strip
|
|
@ -6,6 +6,7 @@ debian/ia64-hardcode-arch-script-output.patch
|
|||
debian/mips-disable-werror.patch
|
||||
debian/arch-sh4-fix-uimage-build.patch
|
||||
debian/powerpcspe-omit-uimage.patch
|
||||
debian/ppc64el-disable-zImage.patch
|
||||
features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch
|
||||
|
||||
# Fixes/improvements to firmware loading
|
||||
|
@ -57,6 +58,7 @@ bugfix/arm/omap-musb-choice.patch
|
|||
bugfix/mips/disable-advansys.patch
|
||||
bugfix/arm/ixp4xx_iobe.patch
|
||||
bugfix/m68k/ethernat-kconfig.patch
|
||||
bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch
|
||||
|
||||
# Miscellaneous bug fixes
|
||||
bugfix/all/misc-bmp085-Enable-building-as-a-module.patch
|
||||
|
@ -94,3 +96,7 @@ features/arm/ARM-dts-sun7i-Add-reg_vcc3v3-to-sun7i-board-mmc-node.patch
|
|||
features/arm/ARM-dts-sun7i-cubietruck-set-mmc3-bus-width-property.patch
|
||||
features/arm/ARM-dts-imx6qdl-wandboard-Add-HDMI-support.patch
|
||||
features/arm/ARM-imx-add-HDMI-support-for-SolidRun-HummingBoard-a.patch
|
||||
|
||||
bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch
|
||||
bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch
|
||||
bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch
|
||||
|
|
|
@ -23,7 +23,7 @@ grep_model() {
|
|||
parisc|parisc64)
|
||||
egrep '^(model|[hs]version)\b' /proc/cpuinfo
|
||||
;;
|
||||
ppc|ppc64)
|
||||
ppc|ppc64|ppc64le)
|
||||
egrep -i '^(board|machine|model|motherboard|platform|revision|vendor)\b' /proc/cpuinfo
|
||||
;;
|
||||
s390|s390x)
|
||||
|
|
Loading…
Reference in New Issue