diff --git a/debian/changelog b/debian/changelog index 91316b651..2db3170a5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -33,6 +33,353 @@ linux (4.18~rc3-1~exp1) experimental; urgency=medium -- Ben Hutchings Tue, 03 Jul 2018 17:26:05 +0100 +linux (4.17.6-1) unstable; urgency=medium + + * New upstream stable update: + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.4 + - [x86] spectre_v1: Disable compiler optimizations over + array_index_mask_nospec() + - [x86] xen: Add call of speculative_store_bypass_ht_init() to PV paths + - [x86] UV: Add adjustable set memory block size function + - [x86] UV: Use new set memory block size function + - [x86] UV: Add kernel parameter to set memory block size + - [x86] mce: Improve error message when kernel cannot recover + - [x86] mce: Check for alternate indication of machine check recovery on + Skylake + - [x86] mce: Fix incorrect "Machine check from unknown source" message + - [x86] mce: Do not overwrite MCi_STATUS in mce_no_way_out() + - [x86] Call fixup_exception() before notify_die() in math_error() + - [m68k] mm: Adjust VM area to be unmapped by gap size for __iounmap() + - [m68k] mac: Fix SWIM memory resource end address + - hwmon: (k10temp) Add support for Stoney Ridge and Bristol Ridge CPUs + - mtd: spi-nor: intel-spi: Fix atomic sequence handling + - serial: sh-sci: Use spin_{try}lock_irqsave instead of open coding version + - signal/xtensa: Consistenly use SIGBUS in do_unaligned_user + - PM / Domains: Fix error path during attach in genpd + - PCI / PM: Do not clear state_saved for devices that remain suspended + - ACPI / LPSS: Avoid PM quirks on suspend and resume from S3 + - PM / core: Fix supplier device runtime PM usage counter imbalance + - PM / OPP: Update voltage in case freq == old_freq + - mmc: renesas_sdhi: really fix WP logic regressions + - usb: do not reset if a low-speed or full-speed device timed out + - 1wire: family module autoload fails because of upper/lower case mismatch. + - ASoC: dapm: delete dapm_kcontrol_data paths list before freeing it + - ASoC: cs35l35: Add use_single_rw to regmap config + - ASoC: mediatek: preallocate pages use platform device + - ASoC: cirrus: i2s: Fix LRCLK configuration + - ASoC: cirrus: i2s: Fix {TX|RX}LinCtrlData setup + - thermal: bcm2835: Stop using printk format %pCr + - lib/vsprintf: Remove atomic-unsafe support for %pCr + - ftrace/selftest: Have the reset_trigger code be a bit more careful + - mips: ftrace: fix static function graph tracing + - branch-check: fix long->int truncation when profiling branches + - ipmi:bt: Set the timeout before doing a capabilities check + - Bluetooth: hci_qca: Avoid missing rampatch failure with userspace fw + loader + - printk: fix possible reuse of va_list variable + - fuse: fix congested state leak on aborted connections + - fuse: atomic_o_trunc should truncate pagecache + - fuse: don't keep dead fuse_conn at fuse_fill_super(). + - fuse: fix control dir setup and teardown + - [powerpc*] mm/hash: Add missing isync prior to kernel stack SLB switch + - [powerpc*] pkeys: Detach execute_only key on !PROT_EXEC + - [powerpc*] ptrace: Fix setting 512B aligned breakpoints with + PTRACE_SET_DEBUGREG + - [powerpc*] perf: Fix memory allocation for core-imc based on + num_possible_cpus() + - [powerpc*] ptrace: Fix enforcement of DAWR constraints + - [powerpc*] powernv/ioda2: Remove redundant free of TCE pages + - [powerpc*] powernv: copy/paste - Mask SO bit in CR + - [powerpc*] powernv/cpuidle: Init all present cpus for deep states + - [powerpc*] cpuidle: powernv: Fix promotion from snooze if next state + disabled + - [powerpc*] fadump: Unregister fadump on kexec down path. + - libnvdimm, pmem: Do not flush power-fail protected CPU caches + - [armhf, arm64] soc: rockchip: power-domain: Fix wrong value when power + up pd with writemask + - [powerpc*] 64s/radix: Fix radix_kvm_prefetch_workaround paca access of not + possible CPU + - [powerpc] e500mc: Set assembler machine type to e500mc + - [powerpc*] 64s: Fix DT CPU features Power9 DD2.1 logic + - cxl: Configure PSL to not use APC virtual machines + - cxl: Disable prefault_mode in Radix mode + - [armhf] 8764/1: kgdb: fix NUMREGBYTES so that gdb_regs[] is the correct size + - [armhf] dts: Fix SPI node for Arria10 + - [armhf] dts: socfpga: Fix NAND controller node compatible + - [armhf] dts: socfpga: Fix NAND controller clock supply + - [armhf] dts: socfpga: Fix NAND controller node compatible for Arria10 + - hwrng: core - Always drop the RNG in hwrng_unregister() + - softirq: Reorder trace_softirqs_on to prevent lockdep splat + - [arm64] Fix syscall restarting around signal suppressed by tracer + - [arm64] crypto: arm64/aes-blk - fix and move skcipher_walk_done out of + kernel_neon_begin, _end + - [arm64] kpti: Use early_param for kpti= command-line option + - [arm64] mm: Ensure writes to swapper are ordered wrt subsequent cache + maintenance + - [arm64] dts: marvell: fix CP110 ICU node size + - [arm64] dts: meson: disable sd-uhs modes on the libretech-cc + - [arm64] dts: meson-gx: fix ATF reserved memory region + - of: overlay: validate offset from property fixups + - of: unittest: for strings, account for trailing \0 in property length + field + - of: platform: stop accessing invalid dev in of_platform_device_destroy + - tpm: fix use after free in tpm2_load_context() + - tpm: fix race condition in tpm_common_write() + - efi/libstub/tpm: Initialize efi_physical_addr_t vars to zero for mixed + mode + - IB/qib: Fix DMA api warning with debug kernel + - IB/{hfi1, qib}: Add handling of kernel restart + - IB/mlx4: Mark user MR as writable if actual virtual memory is writable + - IB/core: Make testing MR flags for writability a static inline function + - IB/mlx5: Fetch soft WQE's on fatal error state + - IB/isert: Fix for lib/dma_debug check_sync warning + - IB/isert: fix T10-pi check mask setting + - IB/hfi1: Fix fault injection init/exit issues + - IB/hfi1: Reorder incorrect send context disable + - IB/hfi1: Optimize kthread pointer locking when queuing CQ entries + - IB/hfi1: Fix user context tail allocation for DMA_RTAIL + - IB/uverbs: Fix ordering of ucontext check in ib_uverbs_write + - RDMA/mlx4: Discard unknown SQP work requests + - xprtrdma: Return -ENOBUFS when no pages are available + - RDMA/core: Save kernel caller name when creating CQ using ib_create_cq() + - mtd: rawnand: Do not check FAIL bit when executing a SET_FEATURES op + - mtd: cfi_cmdset_0002: Change write buffer to check correct value + - mtd: rawnand: denali_dt: set clk_x_rate to 200 MHz unconditionally + - mtd: rawnand: fix return value check for bad block status + - mtd: rawnand: mxc: set spare area size register explicitly + - mtd: rawnand: micron: add ONFI_FEATURE_ON_DIE_ECC to supported features + - mtd: rawnand: All AC chips have a broken GET_FEATURES(TIMINGS). + - mtd: cfi_cmdset_0002: Use right chip in do_ppb_xxlock() + - mtd: cfi_cmdset_0002: fix SEGV unlocking multiple chips + - mtd: cfi_cmdset_0002: Fix unlocking requests crossing a chip boudary + - mtd: cfi_cmdset_0002: Avoid walking all chips when unlocking. + - clk:aspeed: Fix reset bits for PCI/VGA and PECI + - [x86] PCI: hv: Make sure the bus domain is really unique + - PCI: Add ACS quirk for Intel 7th & 8th Gen mobile + - PCI: Add ACS quirk for Intel 300 series + - PCI: pciehp: Clear Presence Detect and Data Link Layer Status Changed on + resume + - PCI: Account for all bridges on bus when distributing bus numbers + - auxdisplay: fix broken menu + - pinctrl: armada-37xx: Fix spurious irq management + - pinctrl: samsung: Correct EINTG banks order + - pinctrl: devicetree: Fix pctldev pointer overwrite + - cpufreq: intel_pstate: Fix scaling max/min limits with Turbo 3.0 + - [mips*] pb44: Fix i2c-gpio GPIO descriptor table + - [mips*] io: Add barrier after register read in inX() + - time: Make sure jiffies_to_msecs() preserves non-zero time periods + - irqchip/gic-v3-its: Don't bind LPI to unavailable NUMA node + - locking/rwsem: Fix up_read_non_owner() warning with DEBUG_RWSEMS + - X.509: unpack RSA signatureValue field from BIT STRING + - Btrfs: fix return value on rename exchange failure + - iio: adc: ad7791: remove sample freq sysfs attributes + - iio: sca3000: Fix an error handling path in 'sca3000_probe()' + - mm: fix __gup_device_huge vs unmap + - scsi: scsi_debug: Fix memory leak on module unload + - scsi: hpsa: disable device during shutdown + - scsi: qla2xxx: Delete session for nport id change + - scsi: qla2xxx: Fix setting lower transfer speed if GPSC fails + - scsi: qla2xxx: Mask off Scope bits in retry delay + - scsi: qla2xxx: Spinlock recursion in qla_target + - scsi: zfcp: fix missing SCSI trace for result of eh_host_reset_handler + - scsi: zfcp: fix missing SCSI trace for retry of abort / scsi_eh TMF + - scsi: zfcp: fix misleading REC trigger trace where erp_action setup + failed + - scsi: zfcp: fix missing REC trigger trace on terminate_rport_io early + return + - scsi: zfcp: fix missing REC trigger trace on terminate_rport_io for + ERP_FAILED + - scsi: zfcp: fix missing REC trigger trace for all objects in ERP_FAILED + - scsi: zfcp: fix missing REC trigger trace on enqueue without ERP thread + - linvdimm, pmem: Preserve read-only setting for pmem devices + - libnvdimm, pmem: Unconditionally deep flush on *sync + - [armhf] clk: meson: meson8b: mark fclk_div2 gate clocks as CLK_IS_CRITICAL + - [armhf] rtc: sun6i: Fix bit_idx value for clk_register_gate + - md: fix two problems with setting the "re-add" device state. + - rpmsg: smd: do not use mananged resources for endpoints and channels + - ubi: fastmap: Cancel work upon detach + - ubi: fastmap: Correctly handle interrupted erasures in EBA + - UBIFS: Fix potential integer overflow in allocation + - backlight: as3711_bl: Fix Device Tree node lookup + - backlight: max8925_bl: Fix Device Tree node lookup + - backlight: tps65217_bl: Fix Device Tree node lookup + - Revert "iommu/amd_iommu: Use CONFIG_DMA_DIRECT_OPS=y and + dma_direct_{alloc,free}()" + - f2fs: don't use GFP_ZERO for page caches + - um: Fix initialization of vector queues + - um: Fix raw interface options + - mfd: twl-core: Fix clock initialization + - mfd: intel-lpss: Program REMAP register in PIO mode + - mfd: intel-lpss: Fix Intel Cannon Lake LPSS I2C input clock + - perf tools: Fix symbol and object code resolution for vdso32 and vdsox32 + - [x86] perf intel-pt: Fix sync_switch INTEL_PT_SS_NOT_TRACING + - [x86] perf intel-pt: Fix decoding to accept CBR between FUP and + corresponding TIP + - [x86] perf intel-pt: Fix MTC timing after overflow + - [x86] perf intel-pt: Fix "Unexpected indirect branch" error + - [x86] perf intel-pt: Fix packet decoding of CYC packets + - media: vsp1: Release buffers for each video node + - media: uvcvideo: Support realtek's UVC 1.5 device + - media: cx231xx: Ignore an i2c mux adapter + - media: v4l2-compat-ioctl32: prevent go past max size + - media: cx231xx: Add support for AverMedia DVD EZMaker 7 + - media: rc: mce_kbd decoder: fix stuck keys + - media: dvb_frontend: fix locking issues at dvb_frontend_get_event() + - nfsd: restrict rd_maxcount to svc_max_payload in nfsd_encode_readdir + - NFSv4: Fix possible 1-byte stack overflow in + nfs_idmap_read_and_verify_message + - NFSv4: Revert commit 5f83d86cf531d ("NFSv4.x: Fix wraparound issues..") + - NFSv4: Fix a typo in nfs41_sequence_process + - video: uvesafb: Fix integer overflow in allocation (CVE-2018-13406) + - ACPI / LPSS: Add missing prv_offset setting for byt/cht PWM devices + - Input: silead - add MSSL0002 ACPI HID + - Input: elan_i2c - add ELAN0618 (Lenovo v330 15IKB) ACPI ID + - pwm: lpss: platform: Save/restore the ctrl register over a suspend/resume + - rbd: flush rbd_dev->watch_dwork after watch is unregistered + - mm/ksm.c: ignore STABLE_FLAG of rmap_item->address in rmap_walk_ksm() + - mm: fix devmem_is_allowed() for sub-page System RAM intersections + - xen: Remove unnecessary BUG_ON from __unbind_from_irq() + - net: ethernet: fix suspend/resume in davinci_emac + - udf: Detect incorrect directory size + - Input: xpad - fix GPD Win 2 controller name + - Input: psmouse - fix button reporting for basic protocols + - Input: elan_i2c_smbus - fix more potential stack buffer overflows + - Input: elantech - enable middle button of touchpads on ThinkPad P52 + - Input: elantech - fix V4 report decoding for module with middle key + - ALSA: timer: Fix UBSAN warning at SNDRV_TIMER_IOCTL_NEXT_DEVICE ioctl + - ALSA: hda - Force to link down at runtime suspend on ATI/AMD HDMI + - ALSA: hda/realtek - Fix pop noise on Lenovo P50 & co + - ALSA: hda/realtek - Add a quirk for FSC ESPRIMO U9210 + - ALSA: hda/realtek - Fix the problem of two front mics on more machines + - Revert "i2c: algo-bit: init the bus to a known state" + - i2c: gpio: initialize SCL to HIGH again + - slub: fix failure when we delete and create a slab cache + - kasan: depend on CONFIG_SLUB_DEBUG + - dm: use bio_split() when splitting out the already processed bio + - pmem: only set QUEUE_FLAG_DAX for fsdax mode + - block: Fix transfer when chunk sectors exceeds max + - block: Fix cloning of requests with a special payload + - [x86] e820: put !E820_TYPE_RAM regions into memblock.reserved + - selinux: move user accesses in selinuxfs out of locked regions + - [x86] entry/64/compat: Fix "x86/entry/64/compat: Preserve r8-r11 in int + $0x80" + - [x86] efi: Fix efi_call_phys_epilog() with CONFIG_X86_5LEVEL=y + - dm zoned: avoid triggering reclaim from inside dmz_map() + - dm thin: handle running out of data space vs concurrent discard + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.5 + - [armhf,arm64] usb: dwc2: fix the incorrect bitmaps for the ports of + multi_tt hub + - usb: typec: tcpm: fix logbuffer index is wrong if _tcpm_log is re-entered + - acpi: Add helper for deactivating memory region + - usb: typec: ucsi: acpi: Workaround for cache mode issue + - usb: typec: ucsi: Fix for incorrect status data issue + - xhci: Fix kernel oops in trace_xhci_free_virt_device + - n_tty: Fix stall at n_tty_receive_char_special(). + - n_tty: Access echo_* variables carefully. + - [armhf] iio: mma8452: Fix ignoring MMA8452_INT_DRDY + - serial: 8250_pci: Remove stalled entries in blacklist + - serdev: fix memleak on module unload + - vt: prevent leaking uninitialized data to userspace via /dev/vcs* + - drm/amdgpu: Add APU support in vi_set_uvd_clocks + - drm/amdgpu: Add APU support in vi_set_vce_clocks + - drm/amdgpu: fix the missed vcn fw version report + - drm/amdgpu: Grab/put runtime PM references in atomic_commit_tail() + - drm/amdgpu: fix clear_all and replace handling in the VM (v2) + - drm/amd/display: Clear connector's edid pointer + - [x86] drm/i915/dp: Send DPCD ON for MST before phy_up + - drm/qxl: Call qxl_bo_unref outside atomic context + - [armhf] Revert "drm/sun4i: Handle DRM_BUS_FLAG_PIXDATA_*EDGE" + - drm/amdgpu: Don't default to DC support for Kaveri and older + - drm/amdgpu: Use kvmalloc_array for allocating VRAM manager nodes array + - drm/amdgpu: Refactor amdgpu_vram_mgr_bo_invisible_size helper + - drm/amdgpu: Make amdgpu_vram_mgr_bo_invisible_size always accurate + - drm/amdgpu: Update pin_size values before unpinning BO + - drm/amdgpu: GPU vs CPU page size fixes in amdgpu_vm_bo_split_mapping + - drm/amdgpu: Count disabled CRTCs in commit tail earlier + - drm/amd/display: release spinlock before committing updates to stream + - [x86] drm/i915: Allow DBLSCAN user modes with eDP/LVDS/DSI + - [x86] drm/i915: Fix PIPESTAT irq ack on i965/g4x + - [x86] drm/i915: Disallow interlaced modes on g4x DP outputs + - [x86] drm/i915: Turn off g4x DP port in .post_disable() + - [x86] drm/i915: Enable provoking vertex fix on Gen9 systems. + - netfilter: ip6t_rpfilter: provide input interface for route lookup + - netfilter: xt_connmark: fix list corruption on rmmod + - netfilter: nf_tables: use WARN_ON_ONCE instead of BUG_ON in + nft_do_chain() + - [arm64] dts: meson-gxl-s905x-p212: Add phy-supply for usb0 + - [x86] mm: Don't free P4D table when it is folded at runtime + - [armhf] dts: imx6q: Use correct SDMA script for SPI5 core + https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.17.6 + - userfaultfd: hugetlbfs: fix userfaultfd_huge_must_wait() pte access + - mm: hugetlb: yield when prepping struct pages + - mm: teach dump_page() to correctly output poisoned struct pages + - PCI / ACPI / PM: Resume bridges w/o drivers on suspend-to-RAM + - ACPICA: Drop leading newlines from error messages + - ACPI / battery: Safe unregistering of hooks + - tracing: Avoid string overflow + - tracing: Fix missing return symbol in function_graph output + - scsi: sg: mitigate read/write abuse + - scsi: aacraid: Fix PD performance regression over incorrect qd being set + - scsi: target: Fix truncated PR-in ReadKeys response + - [s390x] Correct register corruption in critical section cleanup + - drbd: fix access after free + - vfio: Use get_user_pages_longterm correctly + - [armhf] dts: imx51-zii-rdu1: fix touchscreen pinctrl + - [armhf] dts: omap3: Fix am3517 mdio and emac clock references + - [armhf] dts: dra7: Disable metastability workaround for USB2 + - cifs: Fix use after free of a mid_q_entry + - cifs: Fix memory leak in smb2_set_ea() + - cifs: Fix slab-out-of-bounds in send_set_info() on SMB2 ACE setting + - cifs: Fix infinite loop when using hard mount option + - drm: Use kvzalloc for allocating blob property memory + - drm/udl: fix display corruption of the last line + - drm/amdgpu: Add amdgpu_atpx_get_dhandle() + - drm/amdgpu: Dynamically probe for ATIF handle (v2) + - ext4: include the illegal physical block in the bad map ext4_error msg + - ext4: add more mount time checks of the superblock + - ext4: check superblock mapped prior to committing + - HID: i2c-hid: Fix "incomplete report" noise + - HID: hiddev: fix potential Spectre v1 (CVE-2017-5715) + - HID: debug: check length before copy_to_user() + - HID: core: allow concurrent registration of drivers + - i2c: core: smbus: fix a potential missing-check bug + - i2c: smbus: kill memory leak on emulated and failed DMA SMBus xfers + - fs: allow per-device dax status checking for filesystems + - dax: change bdev_dax_supported() to support boolean returns + - dax: check for QUEUE_FLAG_DAX in bdev_dax_supported() + - dm: prevent DAX mounts if not supported + - mtd: cfi_cmdset_0002: Change definition naming to retry write operation + - mtd: cfi_cmdset_0002: Change erase functions to retry for error + - mtd: cfi_cmdset_0002: Change erase functions to check chip good only + - netfilter: nf_log: don't hold nf_log_mutex during user access + - [x86] staging: comedi: quatech_daqp_cs: fix no-op loop + daqp_ao_insn_write() + - Revert mm/vmstat.c: fix vmstat_update() preemption BUG + + [ Sjoerd Simons ] + * [armhf] DRM: Enable CONFIG_DRM_IMX_PARALLEL_DISPLAY + + [ Ben Hutchings ] + * linux-tools: Fix cross-build of objtool + * [powerpcspe] Fix build failures (thanks to James Clarke): + - powerpc/lib/sstep: Fix building for powerpcspe + - powerpc/lib/Makefile: Don't pull in quad.o for 32-bit kernels + - linux-perf: Disable building for powerpcspe + * [powerpc,powerpcspe,ppc64] Fix cross-build (Closes: #903096): + - Introduce linux-bootwrapper- package containing boot wrapper + tools for the host architecture + - linux-image: Install symlinks to boot wrapper tools instead of the + native tools built by kbuild + * fs: Fix up non-directory creation in SGID directories (CVE-2018-13405) + * sound/pci/hda: Ignore ABI changes + * HID: Avoid ABI change in 4.17.6 + * dax: Avoid ABI change in 4.17.6 + + [ Cyril Brulebois ] + * udeb: Add virtio_console to virtio-modules (Closes: #903122). + + -- Ben Hutchings Thu, 12 Jul 2018 02:05:27 +0100 + linux (4.17.3-1) unstable; urgency=medium * New upstream stable update: diff --git a/debian/config/armhf/config b/debian/config/armhf/config index 964344ed4..658d7217c 100644 --- a/debian/config/armhf/config +++ b/debian/config/armhf/config @@ -313,6 +313,7 @@ CONFIG_DRM_I2C_NXP_TDA998X=m ## file: drivers/gpu/drm/imx/Kconfig ## CONFIG_DRM_IMX=m +CONFIG_DRM_IMX_PARALLEL_DISPLAY=m CONFIG_DRM_IMX_LDB=m CONFIG_DRM_IMX_HDMI=m diff --git a/debian/config/defines b/debian/config/defines index 98fe1d5a2..e5434955a 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -43,6 +43,7 @@ ignore-changes: module:net/rxrpc/rxrpc module:sound/core/seq/** module:sound/firewire/snd-firewire-lib + module:sound/pci/hda/* # btree library is only selected by few drivers so not useful OOT btree_* visitor* diff --git a/debian/installer/modules/virtio-modules b/debian/installer/modules/virtio-modules index bb8947525..48ce25101 100644 --- a/debian/installer/modules/virtio-modules +++ b/debian/installer/modules/virtio-modules @@ -3,6 +3,7 @@ virtio_blk virtio_balloon virtio_scsi virtio_input +virtio_console # Some architectures do not have PCI bus virtio_pci ? diff --git a/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch b/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch new file mode 100644 index 000000000..f632e1415 --- /dev/null +++ b/debian/patches/bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch @@ -0,0 +1,28 @@ +From: James Clarke +Date: Sun, 18 Feb 2018 15:54:44 +0000 +Subject: powerpc/lib/Makefile: Don't pull in quad.o for 32-bit kernels +Origin: https://people.debian.org/~jrtc27/linux-ppc32/0002-powerpc-lib-Makefile-Don-t-pull-in-quad.o-for-32-bit.patch + +The functions exported by quad.o are only used when guarded by +__powerpc64__ and so are unused on 32-bit kernels. Moreover, their +implementations make use of instructions which will cause an illegal +instruction error on 32-bit processors, and are not accepted by the +assembler for SPE processors. + +Fixes: 31bfdb036f12 ("powerpc: Use instruction emulation infrastructure to handle alignment faults") +Signed-off-by: James Clarke +--- + arch/powerpc/lib/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/powerpc/lib/Makefile ++++ b/arch/powerpc/lib/Makefile +@@ -34,7 +34,7 @@ obj64-$(CONFIG_KPROBES_SANITY_TEST) += t + + obj-y += checksum_$(BITS).o checksum_wrappers.o + +-obj-y += sstep.o ldstfp.o quad.o ++obj-y += sstep.o ldstfp.o + obj64-y += quad.o + + obj-$(CONFIG_PPC_LIB_RHEAP) += rheap.o diff --git a/debian/patches/bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch b/debian/patches/bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch new file mode 100644 index 000000000..dfe979c35 --- /dev/null +++ b/debian/patches/bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch @@ -0,0 +1,35 @@ +From: James Clarke +Date: Thu, 7 Dec 2017 20:32:44 +0000 +Subject: powerpc/lib/sstep: Fix building for powerpcspe +Origin: https://people.debian.org/~jrtc27/linux-ppc32/0001-powerpc-lib-sstep-Fix-building-for-powerpcspe.patch + +On powerpcspe, ptesync is not a recognised instruction and so fails to +assemble. We don't expect to have to emulate an lwsync or a ptesync on a +32-bit kernel, so just ifdef them out, and catch any unexpected barrier +types. + +Fixes: 3cdfcbfd32b9 ("powerpc: Change analyse_instr so it doesn't modify *regs") +Signed-off-by: James Clarke +--- + arch/powerpc/lib/sstep.c | 4 ++++ + 1 file changed, 4 insertions(+) + +--- a/arch/powerpc/lib/sstep.c ++++ b/arch/powerpc/lib/sstep.c +@@ -2671,12 +2671,16 @@ void emulate_update_regs(struct pt_regs + case BARRIER_EIEIO: + eieio(); + break; ++#ifdef __powerpc64__ + case BARRIER_LWSYNC: + asm volatile("lwsync" : : : "memory"); + break; + case BARRIER_PTESYNC: + asm volatile("ptesync" : : : "memory"); + break; ++#endif ++ default: ++ WARN_ON_ONCE(1); + } + break; + diff --git a/debian/patches/series b/debian/patches/series index 3976363dc..6fc82848a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -65,6 +65,8 @@ bugfix/x86/perf-tools-fix-unwind-build-on-i386.patch bugfix/sh/sh-boot-do-not-use-hyphen-in-exported-variable-name.patch bugfix/x86/mmap-remember-the-map_fixed-flag-as-vm_fixed.patch bugfix/x86/mmap-add-an-exception-to-the-stack-gap-for-hotspot-jvm.patch +bugfix/powerpc/powerpc-lib-sstep-fix-building-for-powerpcspe.patch +bugfix/powerpc/powerpc-lib-makefile-don-t-pull-in-quad.o-for-32-bit.patch bugfix/arm/arm-mm-export-__sync_icache_dcache-for-xen-privcmd.patch # Arch features diff --git a/debian/rules.d/Makefile b/debian/rules.d/Makefile index c7506d3e4..4a252c5ca 100644 --- a/debian/rules.d/Makefile +++ b/debian/rules.d/Makefile @@ -6,6 +6,11 @@ SUBDIRS = \ scripts \ tools +DEB_HOST_ARCH := $(shell dpkg-architecture -qDEB_HOST_ARCH) +ifneq ($(filter powerpc powerpcspe ppc64,$(DEB_HOST_ARCH)),) + SUBDIRS += arch/powerpc/boot +endif + include $(top_rulesdir)/Makefile.inc # Build userland headers first diff --git a/debian/rules.d/arch/powerpc/boot/Makefile b/debian/rules.d/arch/powerpc/boot/Makefile new file mode 100644 index 000000000..ab8e9d74f --- /dev/null +++ b/debian/rules.d/arch/powerpc/boot/Makefile @@ -0,0 +1,11 @@ +PROGS = \ + addnote \ + hack-coff \ + mktree + +SCRIPTS = \ + wrapper + +include $(top_rulesdir)/Makefile.inc + +CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 diff --git a/debian/rules.d/tools/objtool/Makefile b/debian/rules.d/tools/objtool/Makefile index 532e5b793..cc2ea9e22 100644 --- a/debian/rules.d/tools/objtool/Makefile +++ b/debian/rules.d/tools/objtool/Makefile @@ -3,7 +3,9 @@ include $(top_rulesdir)/Makefile.inc all: # For now, only supported target architecture is x86. Later we'll need to build # for multiple targets and add a wrapper, same as for modpost. - $(MAKE) -C $(top_srcdir)/tools/objtool O=$(CURDIR) ARCH=x86 +# objtool explicitly sets CC and LD to be native tools; we need to override +# this on the command line to make cross-builds work. + $(MAKE) -C $(top_srcdir)/tools/objtool O=$(CURDIR) ARCH=x86 CC=$(CC) LD=$(CROSS_COMPILE)ld install: install -D -m755 objtool $(DESTDIR)/$(installdir)/objtool diff --git a/debian/rules.d/tools/perf/Makefile b/debian/rules.d/tools/perf/Makefile index 027327a05..3ac8945fc 100644 --- a/debian/rules.d/tools/perf/Makefile +++ b/debian/rules.d/tools/perf/Makefile @@ -15,7 +15,10 @@ else ifneq ($(filter mips%,$(DEB_HOST_ARCH_CPU)),) else ifeq ($(DEB_HOST_ARCH_CPU),hppa) KERNEL_ARCH_PERF = parisc else ifneq ($(filter powerpc% ppc%,$(DEB_HOST_ARCH_CPU)),) - KERNEL_ARCH_PERF = powerpc + # But pure 32-bit toolchains currently don't work + ifneq ($(shell dpkg-architecture -qDEB_HOST_ARCH),powerpcspe) + KERNEL_ARCH_PERF = powerpc + endif else ifneq ($(filter s390%,$(DEB_HOST_ARCH_CPU)),) KERNEL_ARCH_PERF = s390 else ifeq ($(DEB_HOST_ARCH_CPU),sh4) diff --git a/debian/rules.real b/debian/rules.real index 7ecc967bd..8852ba399 100644 --- a/debian/rules.real +++ b/debian/rules.real @@ -83,11 +83,14 @@ binary-indep: install-support ifneq ($(DO_TOOLS_VERSIONED),False) build-arch-arch: $(STAMPS_DIR)/build-tools binary-arch-arch: install-kbuild - ifneq ($(filter alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsr6 mipsr6el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el powerpc powerpcspe ppc64 ppc64el s390 s390x sh4 sparc sparc64,$(DEB_HOST_ARCH)),) + ifneq ($(filter alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsr6 mipsr6el mips64r6 mips64r6el mipsn32 mipsn32el mipsn32r6 mipsn32r6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64,$(DEB_HOST_ARCH)),) ifeq ($(filter nopython,$(DEB_BUILD_PROFILES)),) binary-arch-arch: install-perf endif endif + ifneq ($(filter powerpc powerpcspe ppc64,$(DEB_HOST_ARCH)),) + binary-arch-arch: install-bootwrapper + endif endif ifneq ($(DO_TOOLS_UNVERSIONED),False) binary-arch-arch: install-usbip install-cpupower install-liblockdep @@ -461,10 +464,20 @@ ifneq ($(filter arm64 armel armhf mipsr6 mipsr6el mips64r6 mips64r6el,$(ARCH)),) +$(MAKE_CLEAN) -C $(DIR) dtbs_install INSTALL_DTBS_PATH=$(CURDIR)/$(DT_INSTALL_DIR) endif ifneq ($(filter powerpc powerpcspe ppc64,$(ARCH)),) +# Install wrapper code and DT source, but not the wrapper script or +# the executables it calls. Kbuild will always build these executable +# as native code, which is wrong for a cross-built package. Install +# symlinks to the versions in the linux-bootwrapper package instead. + rm -rf '$(DIR)_bootwrapper' +$(MAKE_CLEAN) -C '$(DIR)' bootwrapper_install \ - WRAPPER_OBJDIR='$(CURDIR)/$(DT_INSTALL_DIR)' \ - WRAPPER_DTSDIR='$(CURDIR)/$(DT_INSTALL_DIR)'/dts \ - WRAPPER_BINDIR='$(CURDIR)/$(DT_INSTALL_DIR)' + WRAPPER_OBJDIR='$(CURDIR)/$(DT_INSTALL_DIR)' \ + WRAPPER_DTSDIR='$(CURDIR)/$(DT_INSTALL_DIR)/dts' \ + WRAPPER_BINDIR='$(CURDIR)/$(DIR)_bootwrapper' + for prog in '$(DIR)_bootwrapper'/*; do \ + prog="$$(basename $$prog)"; \ + ln -s ../linux-bootwrapper-$(ABINAME)/$$prog \ + '$(DT_INSTALL_DIR)'/$$prog; \ + done endif install-image_$(ARCH)_$(FEATURESET)_$(FLAVOUR)_bug: @@ -778,4 +791,22 @@ endif dh_md5sums dh_builddeb +install-bootwrapper: PACKAGE_NAME = linux-bootwrapper-$(ABINAME) +install-bootwrapper: DH_OPTIONS = -p$(PACKAGE_NAME) +install-bootwrapper: DIR = $(CURDIR)/debian/$(PACKAGE_NAME) +install-bootwrapper: $(STAMPS_DIR)/build-tools + dh_testdir + dh_testroot + dh_prep + $(call make-tools,arch/powerpc/boot) install DESTDIR=$(DIR) installdir=/usr/lib/$(PACKAGE_NAME) + dh_installchangelogs + dh_strip + dh_compress + dh_fixperms + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + # vim: filetype=make diff --git a/debian/templates/control.image.in b/debian/templates/control.image.in index 266757f55..8fdabe60b 100644 --- a/debian/templates/control.image.in +++ b/debian/templates/control.image.in @@ -1,6 +1,6 @@ Package: linux-image-@abiname@@localversion@ Build-Profiles: -Depends: kmod, linux-base (>= 4.3~), ${misc:Depends} +Depends: kmod, linux-base (>= 4.3~), linux-bootwrapper-@abiname@ [powerpc powerpcspe ppc64], ${misc:Depends} Recommends: firmware-linux-free, ${kernel:Recommends} Suggests: linux-doc-@version@, debian-kernel-handbook Description: Linux @upstreamversion@ for @class@ diff --git a/debian/templates/control.tools-versioned.in b/debian/templates/control.tools-versioned.in index 9bef406a1..3899c7669 100644 --- a/debian/templates/control.tools-versioned.in +++ b/debian/templates/control.tools-versioned.in @@ -9,7 +9,7 @@ Description: Kbuild infrastructure for Linux @version@ Package: linux-perf-@version@ Build-Profiles: Section: devel -Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc powerpcspe ppc64 ppc64el s390 s390x sh4 sparc sparc64 +Architecture: alpha amd64 arm64 armel armhf hppa i386 mips mips64 mips64el mipsel mipsn32 mipsn32el mipsr6 mipsr6el mipsn32r6 mipsn32r6el mips64r6 mips64r6el powerpc ppc64 ppc64el s390 s390x sh4 sparc sparc64 Depends: ${shlibs:Depends}, ${misc:Depends}, ${perl:Depends}, ${python:Depends} Recommends: linux-base Provides: linux-tools-@version@ @@ -22,3 +22,12 @@ Description: Performance analysis tools for Linux @version@ . The linux-base package contains a 'perf' command which will invoke the appropriate version for the running kernel. + +Package: linux-bootwrapper-@abiname@ +Build-Profiles: +Architecture: powerpc powerpcspe ppc64 +Depends: ${shlibs:Depends}, ${misc:Depends} +Multi-Arch: foreign +Description: Boot wrapper tools for Linux @version@ on PowerPC + This package provides the 'wrapper' script and related tools needed + to process the Linux kernel image for use with some PowerPC platforms.