2013-08-04 21:09:16

by Linus Torvalds

[permalink] [raw]
Subject: Linux 3.11-rc4

It's that time of the week again..

"You apply 339 patches, what do you get
Another week older and deeper in debt
Saint Peter don't you call me 'cause I can't go
I owe my soul to the company store"

I had hoped things would start calming down, but rc4 is pretty much
exactly the same size as rc3 was. That said, the patches seem a bit
more spread out, and less interesting - which is a good thing. Boring
is good. Let's keep it that way, and try to make for fewer patches for
-rc5, ok? Because we are past half-way now, and I really want to see
just fixes.

We've got some arch updates (arm, parisc), but most of this is drivers
(mostly networking, usb and some drm updates). There's also some core
networking changes. And the printk code movement looks big if you
don't do git renames (ie like the patches I upload).

Linus

---

Aaro Koskinen (1):
powerpc/windfarm: Fix noisy slots-fan on Xserve (rm31)

AceLan Kao (2):
Bluetooth: Add support for Atheros [0cf3:3121]
Bluetooth: Add support for Atheros [0cf3:e003]

Adam Lee (1):
Bluetooth: fix wrong use of PTR_ERR() in btusb

Alex Deucher (15):
drm/radeon: fix audio dto programming on DCE4+
drm/radeon/dpm: fix display gap programming on SI
drm/radeon/dpm: fix si_calculate_memory_refresh_rate()
drm/radeon/dpm: fix powertune handling for pci id 0x6835
drm/radeon: properly handle cg on asics without UVD
drm/radeon/atom: fix fb when fetching engine params
drm/radeon/dpm: fix forcing performance state to low on cayman
drm/radeon/si: disable cgcg and pg for now
drm/radeon/dpm: disable cac setup on SI
drm/radeon/dpm: fix and enable reclocking on SI
drm/radeon/atom: initialize more atom interpretor elements to 0
drm: fix 64 bit drm fixed point helpers
drm/radeon/dpm: fix calculations in
si_calculate_leakage_for_v_and_t_formula
drm/radeon/dpm: re-enable cac control on SI
drm/radeon: fix 64 bit divide in SI spm code

Alex Ivanov (1):
parisc: agp/parisc-agp: allow binding of user memory to the AGP GART

Alex Williamson (3):
vfio: Don't overreact to DEL_DEVICE
vfio: Ignore sprurious notifies
vfio-pci: Avoid deadlock on remove

Alexander Bondar (1):
iwlwifi: mvm: Fix VIF specific debugfs directory creation

Alexey Khoroshilov (2):
ath9k_htc: fix data race between request_firmware_nowait()
callback and suspend()
can: usb_8dev: fix urb leak on failure path in usb_8dev_start()

Andi Shyti (1):
mlx5_core: Variable may be used uninitialized

Andrew Morton (1):
arch/x86/platform/ce4100/ce4100.c: include reboot.h

Andrzej Pietrasiewicz (4):
usb: gadget: ether: put_usb_function on unbind
usb: gadget: free opts struct on error recovery
usb: gadget: multi: fix error return code in cdc_do_config()
usb: gadget: f_phonet: remove unused preprocessor conditional

Arend van Spriel (3):
brcmfmac: decrement pending 8021x count upon tx failure
brcmfmac: bail out of brcmf_txflowblock_if() for non-netdev interface
brcmfmac: inform cfg80211 about disconnect when device is unplugged

Arik Nemtsov (1):
regulatory: use correct regulatory initiator on wiphy register

Arnaud Patard (2):
mvneta: Fix hang when loading the mvneta driver
mvneta: Try to fix mvneta when compiled as module

Arnd Bergmann (1):
ssb: fix alignment of struct bcma_device_id

Aurelien Chartier (1):
xenbus: frontend resume cleanup

Avinash Patil (2):
mwifiex: check for bss_role instead of bss_mode for STA operations
mwifiex: fix wrong data rates in P2P client

Axel Lin (1):
serial: arc_uart: Fix module alias

Ben Hutchings (2):
sfc: Enable RX scatter for flows steered by RFS
dmi_scan: add comments on dmi_present() and the loop in dmi_scan_machine()

Ben Skeggs (1):
drm/nouveau/vm: make vm refcount into a kref

Ben Widawsky (1):
drm/i915: fix missed hunk after GT access breakage

Benjamin Tissoires (1):
HID: sony: fix HID mapping for PS3 sixaxis controller

Bjorn Helgaas (2):
PCI: hotplug: Convert to be builtin only, not modular
PCI: pciehp: Convert pciehp to be builtin only, not modular

Bob Copeland (1):
ath5k: fix extra set bit in multicast mask

Catalin Marinas (1):
ARM: 7790/1: Fix deferred mm switch on VIVT processors

Chun-Yeow Yeoh (2):
nl80211: fix the setting of RSSI threshold value for mesh
mac80211: prevent the buffering or frame transmission to
non-assoc mesh STA

Clemens Ladisch (1):
firewire: fix libdc1394/FlyCap2 iso event regression

Colin Cross (1):
freezer: set PF_SUSPEND_TASK flag on tasks that call freeze_processes

Cong Wang (2):
net: fix a compile error when CONFIG_NET_LL_RX_POLL is not set
net: rename CONFIG_NET_LL_RX_POLL to CONFIG_NET_RX_BUSY_POLL

Dan Carpenter (12):
arcnet: cleanup sizeof parameter
mlx5: use after free in mlx5_cmd_comp_handler()
fbdev/atyfb: fix recent breakage in correct_chipset()
RDMA/cxgb4: Fix stack info leak in c4iw_create_qp()
RDMA/ocrdma: Fix several stack info leaks
RDMA/nes: Fix info leaks in nes_create_qp() and nes_create_cq()
RDMA/cxgb3: Fix stack info leak in iwch_create_cq()
af_key: more info leaks in pfkey messages
IB/mlx5: Fix stack info leak in mlx5_ib_alloc_ucontext()
mlx5_core: Fix use after free in mlx5_cmd_comp_handler()
rapidio: fix use after free in rio_unregister_scan()
net_sched: info leak in atm_tc_dump_class()

Daniel Borkmann (1):
net: rtm_to_ifaddr: free ifa if ifa_cacheinfo processing fails

Daniel Drake (1):
mwifiex: fix IRQ enable/disable

Dave Kleikamp (1):
mm: sched: numa: fix NUMA balancing when !SCHED_DEBUG

David S. Miller (2):
Revert "atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring"
net_sched: Fix stack info leak in cbq_dump_wrr().

David Spinadel (3):
iwlwifi: mvm: fix bug in scan ssid
iwlwifi: mvm: remove extra SSID from probe request
iwlwifi: mvm: set SSID bits for passive channels

David Vrabel (1):
xen/evtchn: avoid a deadlock when unbinding an event channel

Denis Kirjanov (1):
sis900: Fix the tx queue timeout issue

Dimitris Papastamos (1):
ASoC: wm0010: Fix resource leak

Egbert Eich (4):
drm/mgag200: Fix logic in mgag200_bo_pin() (v2)
drm/mgag200: Add an crtc_disable callback to the crtc helper funcs
drm/mgag200: Add sysfs support for connectors
drm/mgag200: Fix LUT programming for 16bpp

Eli Cohen (1):
mlx5_core: Implement new initialization sequence

Emil Tantilov (1):
igb: fix vlan filtering in promisc mode when not in VT mode

Emil Velikov (2):
drm/nv50/gpio: post-nv92 cards have 32 interrupt lines
drm/nv50-/disp: remove dcb_outp_match call, and related variables

Emilio López (1):
net: sun4i: fix timeout check

Emmanuel Grumbach (6):
iwlwifi: mvm: unregister leds when registration failed
iwlwifi: mvm: fix L2P BA ressources leak
iwlwifi: mvm: track the number of Rx BA sessions
iwlwifi: add DELL SKU for 5150 HMC
iwlwifi: pcie: reset the NIC before the bring up
iwlwifi: pcie: clear RFKILL interrupt in AMPG

Erez Shitrit (1):
IPoIB: Fix pkey change flow for virtualization environments

Eric Dumazet (4):
netfilter: xt_socket: fix broken v0 support
bridge: do not call setup_timer() multiple times
usbnet: do not pretend to support SG/TSO
atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring

Fabio Estevam (3):
fec: Add MODULE_ALIAS
ARM: 7789/1: Do not run dummy_flush_tlb_a15_erratum() on non-Cortex-A15
usb: chipidea: cast PORTSC_PTS and DEVLC_PTS macros

Felipe Balbi (1):
net: ethernet: cpsw: drop IRQF_DISABLED

Felix Fietkau (3):
mac80211/minstrel_ht: fix cck rate sampling
mac80211/minstrel: fix NULL pointer dereference issue
ath9k: fix tx pending frames accounting for dropped packets

Flavio Leitner (1):
veth: add vlan features

Florian Fainelli (3):
net: fix comment above build_skb()
MIPS: BMIPS: do not change interrupt routing depending on boot CPU
MIPS: BMIPS: fix slave CPU booting when physical CPU is not 0

Francesco Fusco (2):
neigh: prevent overflowing params in /proc/sys/net/ipv4/neigh/
sysctl: range checking in do_proc_dointvec_ms_jiffies_conv

Frank Li (1):
net: fec: workaround stop tx during errata ERR006358

Frederic Danis (1):
NFC: Fix NCI over SPI build

Gavin Shan (2):
net/tg3: Fix kernel crash
net/tg3: Fix warning from pci_disable_device()

Geert Uytterhoeven (2):
rt2x00: RT2X00 should depend on HAS_DMA
ath10k: ATH10K should depend on HAS_DMA

Gianluca Anzolin (1):
tty_port: Fix refcounting leak in tty_port_tty_hangup()

Greg Kroah-Hartman (1):
USB: serial: add driver for Suunto ANT+ USB device

Grygorii Strashko (1):
drivers/rtc/rtc-twl.c: fix: rtcX/wakealarm attribute isn't created

Gu Zheng (1):
ocfs2/refcounttree: add the missing NULL check of the return
value of find_or_create_page()

Gustavo Padovan (1):
Bluetooth: Fix race between hci_register_dev() and hci_dev_open()

Hannes Frederic Sowa (1):
ipv6: take rtnl_lock and mark mrt6 table as freed on namespace cleanup

Heesub Shin (1):
mm: zbud: fix condition check on allocation size

Helge Deller (1):
parisc: add defconfig for c8000 machine

Himanshu Madhani (3):
qlcnic: Fix ethtool display for 83xx adapter.
qlcnic: Free up memory in error path.
qlcnic: Fix for flash update failure on 83xx adapter

Hugh Dickins (1):
tmpfs: fix SEEK_DATA/SEEK_HOLE regression

Ilan Peer (1):
iwlwifi: mvm: Disable managed PS when GO is added

Ilia Mirkin (6):
drm/nouveau/core: xtensa firmware size needs to be 0x40000 no matter what
drm/nv50/mc: include vp in the fb error reporting mask
drm/nv31/mpeg: fix mpeg engine initialization
drm/nva3-/disp: fix hda eld writing, needs to be padded
drm/nv40/mpeg: write magic value to channel object to make it work
drm/nv31/mpeg: don't recognize nv3x cards as having nv44 graph class

Inki Dae (2):
drm/exynos: fix module build error
drm/exynos: consider common clock framework to g2d driver.

J. Bruce Fields (4):
svcrpc: fix gss_rpc_upcall create error
svcrpc: fix gss-proxy xdr decoding oops
svcrpc: fix kfree oops in gss-proxy code
svcrpc: set cr_gss_mech from gss-proxy as well as legacy upcall

Jack Morgenstein (3):
IB/mlx4: Use default pkey when creating tunnel QPs
IB/core: Create QP1 using the pkey index which contains the default pkey
net/mlx4_core: VFs must ignore the enable_64b_cqe_eqe module param

Jacob Keller (1):
ixgbe: Fix Tx Hang issue with lldpad on 82598EB

Jaganath Kanakkassery (1):
Bluetooth: Fix invalid length check in l2cap_information_rsp()

Jerry Snitselaar (1):
fib_trie: potential out of bounds access in trie_show_stats()

Jiri Benc (1):
ipv6: prevent race between address creation and removal

Jiri Pirko (1):
ipv6: move peer_addr init into ipv6_add_addr()

Jiri Slaby (1):
net: pch_gbe depends on x86

Jitendra Kalsaria (2):
qlcnic: Fix releasing of Tx frag which was never mapped.
qlcnic: Fix initialization of work function.

Joe Perches (7):
MAINTAINERS: dynamic debug: Jason's not there...
printk: move to separate directory for easier modification
printk: add console_cmdline.h
printk: move braille console support into separate braille.[ch] files
printk: use pointer for console_cmdline indexing
printk: rename struct log to struct printk_log
ndisc: Add missing inline to ndisc_addr_option_pad

Johan Hedberg (2):
Bluetooth: Fix HCI init for BlueFRITZ! devices
Bluetooth: Fix calling request callback more than once

Johan Hovold (4):
USB: mos7840: fix race in register handling
USB: mos7840: fix device-type detection
USB: mos7840: fix race in led handling
USB: mos7840: fix pointer casts

Johannes Berg (8):
cfg80211: fix bugs in new SME implementation
regulatory: add missing rtnl locking
mac80211: fix ethtool stats for non-station interfaces
mac80211: fix duplicate retransmission detection
iwlwifi: dvm: don't send BT_CONFIG on devices w/o Bluetooth
iwlwifi: mvm: refuse connection to APs with BI < 16
iwlwifi: mvm: use only a single GTK in D3
iwlwifi: mvm: fix flushing not started aggregation sessions

John David Anglin (2):
parisc: Fix cache routines to ignore vma's with an invalid pfn
parisc: Remove arch/parisc/kernel/sys32.h header

Julien Grall (2):
xen/arm64: Don't compile cpu hotplug
xen/arm: enable PV control for ARM

Kalle Valo (2):
MAINTAINERS: add ath10k
MAINTAINERS: update ath6kl git location

Kirill A. Shutemov (1):
thp, mm: avoid PageUnevictable on active/inactive lru lists

Kishon Vijay Abraham I (1):
usb: musb: fix resource passed from glue layer to musb

Lan Tianyu (1):
ACPI / battery: Fix parsing _BIX return value

Larry Finger (3):
rtlwifi: Initialize power-setting callback for USB devices
rtlwifi: Fix build errors for unusual cases
ath: wil6210: Fix build error

Lars-Peter Clausen (3):
ASoC: dapm: Fix return value of snd_soc_dapm_put_{volsw,enum_virt}()
dma: pl330: Fix cyclic transfers
ASoC: bf5xx-ac97: Fix compile error with SND_BF5XX_HAVE_COLD_RESET

Lekensteyn (2):
r8169: fix lockdep warning when removing interface
r8169: remove "PHY reset until link up" log spam

Linus Lüssing (1):
bridge: disable snooping if there is no querier

Linus Torvalds (1):
Linux 3.11-rc4

Linus Walleij (3):
Revert "gpio/omap: fix build error when OF_GPIO is not defined."
Revert "gpio/omap: auto request GPIO as input if used as IRQ via DT"
Revert "gpio/omap: don't create an IRQ mapping for every GPIO on DT"

Luciano Coelho (1):
MAINTAINERS: change email of TI WiLink drivers' maintainer

Luis Henriques (1):
vga16fb: Remove unused variable

Maarten Lankhorst (3):
drm/nouveau: fix null pointer dereference in poll_changed
drm/nouveau: fix size check for cards without vm
drm/nouveau: fix semaphore dmabuf obj

Maciej W. Rozycki (1):
MIPS: uapi/asm/siginfo.h: Fix GCC 4.1.2 compilation

Manish Chopra (4):
qlcnic: Fix panic while setting VF's MAC address
qlcnic: Fix guest VLAN
qlcnic: Fix setting Guest VLAN
qlcnic: Fix diagnostic interrupt test for 83xx adapters.

Mark Brown (1):
ASoC: bfin-ac97: Fix prototype error following AC'97 refactoring

Mark Rutland (2):
ARM: 7786/1: hyp: fix macro parameterisation
ARM: 7787/1: virt: ensure visibility of __boot_cpu_mode

Markos Chandras (2):
MIPS: Set default CPU type for BCM47XX platforms
MIPS: powertv: Fix arguments for free_reserved_area()

Markus Trippelsdorf (1):
.gitignore: ignore *.lz4 files

Maxime Ripard (2):
drivers: net: allwinner: Fix Kconfig indentation
drivers: net: sun4i-emac: select MDIO_SUN4I

Maximilian Schneider (1):
net: can: esd_usb2: check index of array before accessing

Michael Ellerman (2):
powerpc: Rename PMU interrupts from CNT to PMI
powerpc/perf: Export PERF_EVENT_CONFIG_EBB_SHIFT to userspace

Michael S. Tsirkin (2):
macvlan: better mode validation
macvlan: handle set_promiscuity failures

Michal Hocko (3):
vmpressure: change vmpressure::sr_lock to spinlock
vmpressure: do not check for pending work to prevent from new work
vmpressure: make sure there are no events queued after memcg is offlined

Michal Kazior (1):
nl80211: fix mgmt tx status and testmode reporting for netns

Michal Kubeček (2):
ipv6: prevent fib6_run_gc() contention
ipv6: update ip6_rt_last_gc every time GC is run

Michal Simek (1):
video: xilinxfb: Fix compilation warning

Michal Tesar (1):
sysctl net: Keep tcp_syn_retries inside the boundary

Mike Marciniszyn (1):
IB/qib: Add err_decode() call for ring dump

Mugunthan V N (1):
net: ethernet: davinci_emac: drop IRQF_DISABLED

Naoya Horiguchi (1):
mm/swap.c: clear PageActive before adding pages onto unevictable list

Neil Horman (2):
atl1c: Fix misuse of netdev_alloc_skb in refilling rx ring
8139cp: Add dma_mapping_error checking

NeilBrown (1):
NFSD/sunrpc: avoid deadlock on TCP connection due to memory pressure.

Nestor Lopez Casado (2):
HID: Revert "Revert "HID: Fix logitech-dj: missing Unifying device issue""
HID: hid-logitech-dj: querying_devices was never set

Oleg Nesterov (1):
mm: mempolicy: fix mbind_range() && vma_adjust() interaction

Oleksij Rempel (2):
ath9k_htc: do some initial hardware configuration
ath9k_htc: reboot firmware if it was loaded

Or Gerlitz (2):
IPoIB: Make sure child devices use valid/proper pkeys
net/mlx4_core: Don't give VFs MAC addresses which are derived
from the PF MAC

Pablo Neira (1):
genetlink: fix usage of NLM_F_EXCL or NLM_F_REPLACE

Pablo Neira Ayuso (1):
netfilter: ctnetlink: fix incorrect NAT expectation dumping

Paul Bolle (1):
RDMA/cma: Fix gcc warning

Paul Moore (1):
netlabel: use domain based selectors when address based
selectors are not available

Paul Walmsley (1):
ARM: 7801/1: v6: prevent gcc 4.5 from reordering extended CP15
reads above is_smp() test

Peter Chen (1):
usb: chipidea: fix the build error with randconfig

Pratik Pujar (3):
qlcnic: Set __QLCNIC_DEV_UP in adapter state before enabling interrupts
qlcnic: Fix operation type and command type.
qlcnic: Removed adapter series name from warning messages.

Rafael J. Wysocki (3):
Revert "cpuidle: Quickly notice prediction failure in general case"
Revert "cpuidle: Quickly notice prediction failure for repeat mode"
cpufreq: Fix cpufreq driver module refcount balance after suspend/resume

Rajesh Borundia (2):
qlcnic: Fix link speed display for 82xx adapter
qlcnic: Fix link speed and duplex display for 83xx adapter

Ralf Baechle (1):
ASoC: au1x: Fix build

Rick Farina (Zero_Chaos) (1):
USB: serial: ftdi_sio: add more RT Systems ftdi devices

Robert Jennings (1):
powerpc: VPHN topology change updates all siblings

Roland Dreier (2):
RDMA/ocrdma: Remove unused include
Revert "RDMA/nes: Fix compilation error when nes_debug is enabled"

Roman Gushchin (1):
net: check net.core.somaxconn sysctl values

Rong Wang (1):
usb: gadget: udc-core: fix the typo of udc state attribute

Roy Spliet (1):
drm/nvc0/fb: take lock in nvc0_ram_put()

Russell King (14):
ARM: document DEBUG_UNCOMPRESS Kconfig option
ARM: 7785/1: mm: restrict early_alloc to section-aligned memory
ARM: Fix sorting of machine- initializers
ARM: poison the vectors page
ARM: poison memory between kuser helpers
ARM: move vector stubs
ARM: use linker magic for vectors and vector stubs
ARM: update FIQ support for relocation of vectors
ARM: allow kuser helpers to be removed from the vector page
ARM: move signal handlers into a vdso-like page
ARM: make vectors page inaccessible from userspace
ARM: Add .text annotations where required after __CPUINIT removal
ARM: fix a cockup in 48be69a02 (ARM: move signal handlers into a
vdso-like page)
ARM: fix nommu builds with 48be69a02 (ARM: move signal handlers
into a vdso-like page)

Sachin Kamat (1):
drm/exynos: Remove module.h header inclusion

Samuel Ortiz (1):
NFC: netlink: Rename CMD_FW_UPLOAD to CMD_FW_DOWNLOAD

Sean Hefty (2):
RDMA/cma: Fix accessing invalid private data for UD
RDMA/cma: Only call cma_save_ib_info() for CM REQs

Shahed Shaikh (5):
qlcnic: Fix invalid register offset calculation
qlcnic: Fix dump template version mask
qlcnic: Fix MAC address filter issue on 82xx adapter
qlcnic: Fix ingress MAC learning
qlcnic: Fix external loopback test.

Solomon Peachy (1):
cw1200: Fix OOPS in monitor mode

Stanislaw Gruszka (4):
mac80211: fix monitor interface suspend crash regression
Bluetooth: ath3k: don't use stack memory for DMA
genetlink: release cb_lock before requesting additional module
rt2x00: fix stop queue

Stefano Stabellini (2):
xen/arm,arm64: update xen_restart after ff701306cd49 and 7b6d864b48d9
xen/tmem: do not allow XEN_TMEM on ARM64

Stephen Boyd (2):
gpio_msm: Fix build error due to missing err.h
ARM: 7803/1: Fix deadlock scenario with smp_send_stop()

Steven J. Hill (1):
MIPS: Fix multiple definitions of UNCAC_BASE.

Stone Piao (1):
mwifiex: fix command 0x2c timeout during p2p_find or p2p_connect

Sucheta Chakraborty (2):
qlcnic: Fix NULL pointer dereference in VF probe path.
qlcnic: Fix multicast packet handling for PF and VF.

Sujith Manoharan (2):
ath9k_hw: Fix multicast search for AR9002 family
Bluetooth: ath3k: Add support for ID 0x13d3/0x3402

Takashi Iwai (2):
drm/mgag200: Fix framebuffer pitch calculation
ALSA: hda - Fix missing fixup for Mac Mini with STAC9221

Tetsuyuki Kobayashi (1):
ARM: 7788/1: elf: fix lpae hwcap feature reporting in proc/cpuinfo

Thomas Bogendoerfer (1):
parisc: Fix interrupt routing for C8000 serial ports

Thomas Loo (1):
Bluetooth: ath3k: Add support for Fujitsu Lifebook UH5x2 [04c5:1330]

Thomas Petazzoni (1):
PCI: mvebu: Disable prefetchable memory support in PCI-to-PCI bridge

Tomasz Moń (1):
mwifiex: Add missing endian conversion.

Tomi Valkeinen (1):
fbdev/sgivwfb: fix compilation error in sgivwfb_mmap()

Tony Luck (1):
x86/mce: Fix mce regression from recent cleanup

Uwe Kleine-König (4):
serial/mxs-auart: fix race condition in interrupt handler
serial/mxs-auart: increase time to wait for transmitter to become idle
net/fec: Don't let ndo_start_xmit return NETDEV_TX_BUSY without link
ARM: 7800/1: ARMv7-M: Fix name of NVIC handler function

Vineet Gupta (1):
ARC: SMP build breakage

Vinod Koul (1):
ALSA: compress: fix the return value for SNDRV_COMPRESS_VERSION

Vivien Didelot (1):
hwmon: (max6697) fix MAX6581 ideality

Wei Yongjun (6):
pch_dma: fix error return code in pch_dma_probe()
video: nuc900fb: fix to pass correct device identity to request_irq()
video: sh7760fb: fix to pass correct device identity to free_irq()
drm/exynos: exynos_drm_ipp: fix return value check
mlx5: fix error return code in mlx5_alloc_uuars()
IB/mlx5: Fix error return code in init_one()

Will Deacon (2):
ARM: 7784/1: mm: ensure SMP alternates assemble to exactly 4
bytes with Thumb-2
ARM: 7791/1: a.out: remove partial a.out support

Ying Xue (1):
tipc: fix oops when creating server socket fails

Yinghai Lu (2):
PCI: pciehp: Fix null pointer deref when hot-removing SR-IOV device
PCI: Retry allocation of only the resource type that failed

Yonghua Zheng (1):
HID: hidraw: fix improper mutex release

hayeswang (5):
net/usb/r815x: replace USB buffer from stack to DMA-able
net/usb/r815x: avoid to call mdio functions for runtime-suspended device
net/usb/r815x: change the return value for bind functions
net/usb/r8152: make sure the USB buffer is DMA-able
net/usb/r8152: adjust relative ocp function

stephen hemminger (3):
vxlan: unregister on namespace exit
vxlan: fix igmp races
htb: fix sign extension bug


2013-08-05 02:39:15

by Andrew Lutomirski

[permalink] [raw]
Subject: O_TMPFILE fs corruption (Re: Linux 3.11-rc4)

On 08/04/2013 02:09 PM, Linus Torvalds wrote:
> It's that time of the week again..

I still get filesystem corruption with O_TMPFILE. The program below,
run as flinktest foo proc (or flinktest foo linkat if you're root) will
produce a bogus inode. On ext4, once the inode is gone from cache, the
inode will be impossible to delete and will require a fsck to fix

A patch (not necessarily the appropriate fix) is here:

http://article.gmane.org/gmane.linux.kernel/1537088

--- cut here ---

#include <stdio.h>
#include <err.h>
#include <fcntl.h>
#include <unistd.h>
#include <string.h>

#define __O_TMPFILE 020000000
#define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
#define AT_EMPTY_PATH 0x1000

int main(int argc, char **argv)
{
char buf[128];

if (argc != 3)
errx(1, "Usage: flinktest PATH linkat|proc");

int fd = open(".", O_TMPFILE | O_RDWR, 0600);
if (fd == -1)
err(1, "O_TMPFILE");
write(fd, "test", 4);

if (!strcmp(argv[2], "linkat")) {
if (linkat(fd, "", AT_FDCWD, argv[1], AT_EMPTY_PATH) != 0)
err(1, "linkat");
} else if (!strcmp(argv[2], "proc")) {
sprintf(buf, "/proc/self/fd/%d", fd);
if (linkat(AT_FDCWD, buf, AT_FDCWD, argv[1], AT_SYMLINK_FOLLOW) != 0)
err(1, "linkat");
} else {
errx(1, "invalid mode");
}
return 0;
}

2013-08-05 03:45:20

by Linus Torvalds

[permalink] [raw]
Subject: Re: O_TMPFILE fs corruption (Re: Linux 3.11-rc4)

The patch looks right to me - we should pass in similar flags for the
create case as for tmpfile to the filesystem.

But let's make sure we're all on the same page. Al?

Linus

On Sun, Aug 4, 2013 at 7:34 PM, Andy Lutomirski <[email protected]> wrote:
> On 08/04/2013 02:09 PM, Linus Torvalds wrote:
>>
>> It's that time of the week again..
>
>
> I still get filesystem corruption with O_TMPFILE. The program below, run as
> flinktest foo proc (or flinktest foo linkat if you're root) will produce a
> bogus inode. On ext4, once the inode is gone from cache, the inode will be
> impossible to delete and will require a fsck to fix
>
> A patch (not necessarily the appropriate fix) is here:
>
> http://article.gmane.org/gmane.linux.kernel/1537088
>
> --- cut here ---
>
> #include <stdio.h>
> #include <err.h>
> #include <fcntl.h>
> #include <unistd.h>
> #include <string.h>
>
> #define __O_TMPFILE 020000000
> #define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
> #define AT_EMPTY_PATH 0x1000
>
> int main(int argc, char **argv)
> {
> char buf[128];
>
> if (argc != 3)
> errx(1, "Usage: flinktest PATH linkat|proc");
>
> int fd = open(".", O_TMPFILE | O_RDWR, 0600);
> if (fd == -1)
> err(1, "O_TMPFILE");
> write(fd, "test", 4);
>
> if (!strcmp(argv[2], "linkat")) {
> if (linkat(fd, "", AT_FDCWD, argv[1], AT_EMPTY_PATH) != 0)
> err(1, "linkat");
> } else if (!strcmp(argv[2], "proc")) {
> sprintf(buf, "/proc/self/fd/%d", fd);
> if (linkat(AT_FDCWD, buf, AT_FDCWD, argv[1], AT_SYMLINK_FOLLOW) != 0)
> err(1, "linkat");
> } else {
> errx(1, "invalid mode");
> }
> return 0;
> }
>

2013-08-05 04:20:32

by Felipe Contreras

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Sun, Aug 4, 2013 at 4:09 PM, Linus Torvalds
<[email protected]> wrote:
> It's that time of the week again..
>
> "You apply 339 patches, what do you get
> Another week older and deeper in debt
> Saint Peter don't you call me 'cause I can't go
> I owe my soul to the company store"
>
> I had hoped things would start calming down, but rc4 is pretty much
> exactly the same size as rc3 was. That said, the patches seem a bit
> more spread out, and less interesting - which is a good thing. Boring
> is good. Let's keep it that way, and try to make for fewer patches for
> -rc5, ok? Because we are past half-way now, and I really want to see
> just fixes.
>
> We've got some arch updates (arm, parisc), but most of this is drivers
> (mostly networking, usb and some drm updates). There's also some core
> networking changes. And the printk code movement looks big if you
> don't do git renames (ie like the patches I upload).

I found a regression while running all v3.11-rcX kernels; Starcract II
through wine crashes. The culprit is fab840f (ptrace: PTRACE_DETACH
should do flush_ptrace_hw_breakpoint(child)), I revert that commit and
there's no crash.

--
Felipe Contreras

2013-08-05 04:45:34

by Andrew Lutomirski

[permalink] [raw]
Subject: Re: O_TMPFILE fs corruption (Re: Linux 3.11-rc4)

On Sun, Aug 4, 2013 at 8:45 PM, Linus Torvalds
<[email protected]> wrote:
> The patch looks right to me - we should pass in similar flags for the
> create case as for tmpfile to the filesystem.

Alternatively, in case anyone ever wants to add more O_TMPFILE-related
flags, open could return -EINVAL if __O_TMPFILE is set and mode
contains bits outside S_IALLUGO. Given the ABI discussion about
O_TMPFILE, this might be useful some day.

--Andy

>
> But let's make sure we're all on the same page. Al?
>
> Linus
>
> On Sun, Aug 4, 2013 at 7:34 PM, Andy Lutomirski <[email protected]> wrote:
>> On 08/04/2013 02:09 PM, Linus Torvalds wrote:
>>>
>>> It's that time of the week again..
>>
>>
>> I still get filesystem corruption with O_TMPFILE. The program below, run as
>> flinktest foo proc (or flinktest foo linkat if you're root) will produce a
>> bogus inode. On ext4, once the inode is gone from cache, the inode will be
>> impossible to delete and will require a fsck to fix
>>
>> A patch (not necessarily the appropriate fix) is here:
>>
>> http://article.gmane.org/gmane.linux.kernel/1537088
>>
>> --- cut here ---
>>
>> #include <stdio.h>
>> #include <err.h>
>> #include <fcntl.h>
>> #include <unistd.h>
>> #include <string.h>
>>
>> #define __O_TMPFILE 020000000
>> #define O_TMPFILE (__O_TMPFILE | O_DIRECTORY)
>> #define AT_EMPTY_PATH 0x1000
>>
>> int main(int argc, char **argv)
>> {
>> char buf[128];
>>
>> if (argc != 3)
>> errx(1, "Usage: flinktest PATH linkat|proc");
>>
>> int fd = open(".", O_TMPFILE | O_RDWR, 0600);
>> if (fd == -1)
>> err(1, "O_TMPFILE");
>> write(fd, "test", 4);
>>
>> if (!strcmp(argv[2], "linkat")) {
>> if (linkat(fd, "", AT_FDCWD, argv[1], AT_EMPTY_PATH) != 0)
>> err(1, "linkat");
>> } else if (!strcmp(argv[2], "proc")) {
>> sprintf(buf, "/proc/self/fd/%d", fd);
>> if (linkat(AT_FDCWD, buf, AT_FDCWD, argv[1], AT_SYMLINK_FOLLOW) != 0)
>> err(1, "linkat");
>> } else {
>> errx(1, "invalid mode");
>> }
>> return 0;
>> }
>>

2013-08-05 08:26:50

by Christoph Hellwig

[permalink] [raw]
Subject: Re: O_TMPFILE fs corruption (Re: Linux 3.11-rc4)

On Sun, Aug 04, 2013 at 08:45:16PM -0700, Linus Torvalds wrote:
> The patch looks right to me - we should pass in similar flags for the
> create case as for tmpfile to the filesystem.
>
> But let's make sure we're all on the same page. Al?

Given all the problems and very limited fs support I'd much prefer
disabling O_TMPFILE for this release. That'd give it the needed
exposure it was missing by being merged without any previous public
review.

2013-08-05 13:35:15

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On 08/04, Felipe Contreras wrote:
>
> I found a regression while running all v3.11-rcX kernels; Starcract II
> through wine crashes.

Thanks... just to clarify, Starcract crashes, wine or kernel?

> The culprit is fab840f (ptrace: PTRACE_DETACH
> should do flush_ptrace_hw_breakpoint(child)), I revert that commit and
> there's no crash.

I never used wine, but I am puzzled anyway. This patch really looks
like a simple and minor bugfix.

Could you please run wine under strace

strace -f -e ptrace -o LOG wine ...

and show the result?

Oleg.

2013-08-05 14:27:45

by Felipe Contreras

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 8:29 AM, Oleg Nesterov <[email protected]> wrote:
> On 08/04, Felipe Contreras wrote:
>>
>> I found a regression while running all v3.11-rcX kernels; Starcract II
>> through wine crashes.
>
> Thanks... just to clarify, Starcract crashes, wine or kernel?

It's Starcraft. In fact, it detects the crash and tries to send a bug
report to Blizzard, the company behind it.

>> The culprit is fab840f (ptrace: PTRACE_DETACH
>> should do flush_ptrace_hw_breakpoint(child)), I revert that commit and
>> there's no crash.
>
> I never used wine, but I am puzzled anyway. This patch really looks
> like a simple and minor bugfix.
>
> Could you please run wine under strace
>
> strace -f -e ptrace -o LOG wine ...
>
> and show the result?

Sure. Note that the crash might have happened some time before the end
of the log.

951 +++ exited with 0 +++
952 +++ exited with 0 +++
950 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=952,
si_status=0, si_utime=0, si_stime=0} ---
954 +++ exited with 0 +++
956 +++ exited with 0 +++
955 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=956,
si_status=0, si_utime=0, si_stime=0} ---
958 +++ exited with 0 +++
955 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=958,
si_status=0, si_utime=0, si_stime=0} ---
962 +++ exited with 0 +++
959 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=962,
si_status=0, si_utime=0, si_stime=0} ---
961 +++ exited with 0 +++
970 +++ exited with 0 +++
959 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=970,
si_status=0, si_utime=0, si_stime=0} ---
965 +++ exited with 0 +++
977 +++ exited with 0 +++
957 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=977,
si_status=0, si_utime=0, si_stime=0} ---
955 +++ exited with 0 +++
950 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=954,
si_status=0, si_utime=0, si_stime=0} ---
980 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
988 +++ exited with 0 +++
986 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=988,
si_status=0, si_utime=0, si_stime=0} ---
993 +++ exited with 0 +++
989 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=993,
si_status=0, si_utime=0, si_stime=0} ---
995 +++ exited with 0 +++
992 +++ exited with 0 +++
989 +++ exited with 0 +++
1009 +++ exited with 0 +++
1010 +++ exited with 0 +++
1011 +++ exited with 0 +++
1012 +++ exited with 0 +++
1013 +++ exited with 0 +++
1014 +++ exited with 0 +++
1016 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1016 +++ exited with 0 +++
1018 +++ exited with 0 +++
1020 +++ exited with 0 +++
1021 +++ exited with 0 +++
1022 +++ exited with 0 +++
974 +++ exited with 0 +++
1023 +++ exited with 0 +++
1025 +++ exited with 0 +++
1005 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1025,
si_status=0, si_utime=0, si_stime=0} ---
1027 +++ exited with 0 +++
1029 +++ exited with 0 +++
980 +++ exited with 0 +++
986 +++ exited with 0 +++
1032 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1032 +++ exited with 0 +++
1034 +++ exited with 0 +++
1026 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1034,
si_status=0, si_utime=0, si_stime=0} ---
1036 +++ exited with 0 +++
983 +++ exited with 0 +++
984 +++ exited with 0 +++
991 +++ exited with 0 +++
1031 +++ exited with 0 +++
981 +++ exited with 0 +++
985 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
982 +++ exited with 0 +++
985 +++ exited with 0 +++
987 +++ exited with 0 +++
990 +++ exited with 0 +++
1030 +++ exited with 0 +++
950 +++ exited with 0 +++
1033 +++ exited with 0 +++
1026 +++ exited with 0 +++
957 +++ exited with 0 +++
1037 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1041 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1047 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1049 +++ exited with 0 +++
1050 +++ exited with 0 +++
1051 +++ exited with 0 +++
1052 +++ exited with 0 +++
1053 +++ exited with 0 +++
1054 +++ exited with 0 +++
1028 +++ exited with 0 +++
1056 +++ exited with 0 +++
1057 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1060 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1061 +++ exited with 0 +++
1062 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1063 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1064 +++ exited with 0 +++
1066 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1067 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1067 +++ exited with 0 +++
1069 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1070 +++ exited with 0 +++
1071 +++ exited with 0 +++
1072 +++ exited with 0 +++
1073 +++ exited with 0 +++
1074 +++ exited with 0 +++
1075 +++ exited with 0 +++
1076 +++ exited with 0 +++
1077 +++ exited with 0 +++
1078 +++ exited with 0 +++
1079 +++ exited with 0 +++
1080 +++ exited with 0 +++
1081 +++ exited with 0 +++
1082 +++ exited with 0 +++
1087 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1086 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1091 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1093 +++ exited with 0 +++
1094 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1095 +++ exited with 0 +++
1096 +++ exited with 0 +++
1097 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1098 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1098 +++ exited with 0 +++
1099 +++ exited with 0 +++
1100 +++ exited with 0 +++
1101 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1101 +++ exited with 0 +++
1103 +++ exited with 0 +++
1104 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1105 +++ exited with 0 +++
1106 +++ exited with 0 +++
1107 +++ exited with 0 +++
1108 +++ exited with 0 +++
1109 +++ exited with 0 +++
1110 +++ exited with 0 +++
1111 +++ exited with 0 +++
1112 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1113 +++ exited with 0 +++
1114 +++ exited with 0 +++
1115 +++ exited with 0 +++
1116 +++ exited with 0 +++
1117 +++ exited with 0 +++
1122 +++ exited with 0 +++
1123 +++ exited with 0 +++
968 +++ exited with 0 +++
966 +++ exited with 0 +++
1124 +++ exited with 0 +++
1125 +++ exited with 0 +++
1126 +++ exited with 0 +++
1127 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1039 +++ exited with 0 +++
1128 +++ exited with 0 +++
1129 +++ exited with 0 +++
1130 +++ exited with 0 +++
1131 +++ exited with 0 +++
1132 +++ exited with 0 +++
1133 +++ exited with 0 +++
1134 +++ exited with 0 +++
998 +++ exited with 0 +++
1135 +++ exited with 0 +++
1136 +++ exited with 0 +++
1137 +++ exited with 0 +++
1138 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1141 +++ exited with 0 +++
1102 +++ exited with 0 +++
1142 +++ exited with 0 +++
1085 +++ exited with 0 +++
1143 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1002 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1087 +++ exited with 0 +++
1144 +++ exited with 0 +++
1084 +++ exited with 0 +++
1083 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
1145 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1147 +++ exited with 0 +++
1024 +++ exited with 0 +++
1148 +++ exited with 0 +++
1152 +++ exited with 0 +++
1006 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1152,
si_status=0, si_utime=0, si_stime=0} ---
1154 +++ exited with 0 +++
1156 +++ exited with 0 +++
1157 +++ exited with 0 +++
1158 +++ exited with 0 +++
1153 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1158,
si_status=0, si_utime=0, si_stime=0} ---
953 ptrace(PTRACE_ATTACH, 1153, 0, 0) = -1 EPERM (Operation not permitted)
1160 +++ exited with 0 +++
1161 +++ exited with 0 +++
1162 +++ exited with 0 +++
1164 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1164, 0, 0) = -1 EPERM (Operation not permitted)
1163 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1163, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1094 +++ exited with 0 +++
1167 +++ exited with 0 +++
1046 +++ exited with 0 +++
1042 +++ exited with 0 +++
1048 +++ exited with 0 +++
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1035 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1038 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1038 +++ exited with 0 +++
1040 +++ exited with 0 +++
1043 +++ exited with 0 +++
1044 +++ exited with 0 +++
1045 +++ exited with 0 +++
1055 +++ exited with 0 +++
1059 +++ exited with 0 +++
1065 +++ exited with 0 +++
1068 +++ exited with 0 +++
1146 +++ exited with 0 +++
1035 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1153, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1153, 0, 0) = -1 EPERM (Operation not permitted)
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1155 +++ exited with 0 +++
1173 +++ exited with 0 +++
1153 +++ exited with 0 +++
1159 --- SIGILL {si_signo=SIGILL, si_code=ILL_ILLOPN, si_addr=0x3d406bbe} ---
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1200 --- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_ACCERR,
si_addr=0x7dd8c14f} ---
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1201 +++ exited with 0 +++
1200 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1200, 0, 0) = -1 EPERM (Operation not permitted)
1199 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1199, 0, 0) = -1 EPERM (Operation not permitted)
1198 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1198, 0, 0) = -1 EPERM (Operation not permitted)
1197 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1197, 0, 0) = -1 EPERM (Operation not permitted)
1196 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1196, 0, 0) = -1 EPERM (Operation not permitted)
1195 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1195, 0, 0) = -1 EPERM (Operation not permitted)
1194 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1194, 0, 0) = -1 EPERM (Operation not permitted)
1193 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1193, 0, 0) = -1 EPERM (Operation not permitted)
1192 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1192, 0, 0) = -1 EPERM (Operation not permitted)
1191 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1191, 0, 0) = -1 EPERM (Operation not permitted)
1190 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1190, 0, 0) = -1 EPERM (Operation not permitted)
1189 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1189, 0, 0) = -1 EPERM (Operation not permitted)
1188 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1188, 0, 0) = -1 EPERM (Operation not permitted)
1187 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1187, 0, 0) = -1 EPERM (Operation not permitted)
1186 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1186, 0, 0) = -1 EPERM (Operation not permitted)
1185 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1185, 0, 0) = -1 EPERM (Operation not permitted)
1184 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1184, 0, 0) = -1 EPERM (Operation not permitted)
1183 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1183, 0, 0) = -1 EPERM (Operation not permitted)
1182 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1182, 0, 0) = -1 EPERM (Operation not permitted)
1181 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1181, 0, 0) = -1 EPERM (Operation not permitted)
1180 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1180, 0, 0) = -1 EPERM (Operation not permitted)
1179 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1179, 0, 0) = -1 EPERM (Operation not permitted)
1178 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1178, 0, 0) = -1 EPERM (Operation not permitted)
1177 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1177, 0, 0) = -1 EPERM (Operation not permitted)
1176 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1176, 0, 0) = -1 EPERM (Operation not permitted)
1175 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1175, 0, 0) = -1 EPERM (Operation not permitted)
1174 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1174, 0, 0) = -1 EPERM (Operation not permitted)
1172 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1172, 0, 0) = -1 EPERM (Operation not permitted)
1171 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1171, 0, 0) = -1 EPERM (Operation not permitted)
1170 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1170, 0, 0) = -1 EPERM (Operation not permitted)
1169 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1169, 0, 0) = -1 EPERM (Operation not permitted)
1168 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1168, 0, 0) = -1 EPERM (Operation not permitted)
1166 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1166, 0, 0) = -1 EPERM (Operation not permitted)
1165 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1165, 0, 0) = -1 EPERM (Operation not permitted)
1164 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1164, 0, 0) = -1 EPERM (Operation not permitted)
1163 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1163, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1200 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1199 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1198 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1197 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1196 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1195 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1194 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1193 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1192 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1191 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1190 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1189 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1188 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1187 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1186 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1185 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1184 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1183 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1182 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1181 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1180 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1179 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1178 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1177 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1176 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1175 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1174 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1172 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1171 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1170 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1169 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1168 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1166 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1165 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1164 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1163 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1200, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1199, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1198, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1197, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1196, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1195, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1194, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1193, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1192, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1191, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1190, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1189, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1188, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1187, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1186, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1185, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1184, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1183, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1182, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1181, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1180, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1179, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1178, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1177, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1176, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1175, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1174, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1172, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1171, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1170, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1169, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1168, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1166, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1165, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1164, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1163, 0, 0) = -1 EPERM (Operation not permitted)
1200 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1200, 0, 0) = -1 EPERM (Operation not permitted)
1199 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1199, 0, 0) = -1 EPERM (Operation not permitted)
1198 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1198, 0, 0) = -1 EPERM (Operation not permitted)
1197 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1197, 0, 0) = -1 EPERM (Operation not permitted)
1196 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1196, 0, 0) = -1 EPERM (Operation not permitted)
1195 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1195, 0, 0) = -1 EPERM (Operation not permitted)
1194 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1194, 0, 0) = -1 EPERM (Operation not permitted)
1193 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1193, 0, 0) = -1 EPERM (Operation not permitted)
1192 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1192, 0, 0) = -1 EPERM (Operation not permitted)
1191 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1191, 0, 0) = -1 EPERM (Operation not permitted)
1190 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1190, 0, 0) = -1 EPERM (Operation not permitted)
1189 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1189, 0, 0) = -1 EPERM (Operation not permitted)
1188 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1188, 0, 0) = -1 EPERM (Operation not permitted)
1187 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1187, 0, 0) = -1 EPERM (Operation not permitted)
1186 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1186, 0, 0) = -1 EPERM (Operation not permitted)
1185 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1185, 0, 0) = -1 EPERM (Operation not permitted)
1184 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1184, 0, 0) = -1 EPERM (Operation not permitted)
1183 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1183, 0, 0) = -1 EPERM (Operation not permitted)
1182 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1182, 0, 0) = -1 EPERM (Operation not permitted)
1181 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1181, 0, 0) = -1 EPERM (Operation not permitted)
1180 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1180, 0, 0) = -1 EPERM (Operation not permitted)
1179 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1179, 0, 0) = -1 EPERM (Operation not permitted)
1178 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1178, 0, 0) = -1 EPERM (Operation not permitted)
1177 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1177, 0, 0) = -1 EPERM (Operation not permitted)
1176 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1176, 0, 0) = -1 EPERM (Operation not permitted)
1175 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1175, 0, 0) = -1 EPERM (Operation not permitted)
1174 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1174, 0, 0) = -1 EPERM (Operation not permitted)
1172 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1172, 0, 0) = -1 EPERM (Operation not permitted)
1171 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1171, 0, 0) = -1 EPERM (Operation not permitted)
1170 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1170, 0, 0) = -1 EPERM (Operation not permitted)
1169 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1169, 0, 0) = -1 EPERM (Operation not permitted)
1168 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1168, 0, 0) = -1 EPERM (Operation not permitted)
1166 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1166, 0, 0) = -1 EPERM (Operation not permitted)
1165 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1165, 0, 0) = -1 EPERM (Operation not permitted)
1164 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1164, 0, 0) = -1 EPERM (Operation not permitted)
1163 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1163, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1204 +++ exited with 0 +++
1202 +++ exited with 0 +++
1203 +++ exited with 0 +++
1207 +++ exited with 0 +++
1205 +++ exited with 0 +++
1206 +++ exited with 0 +++
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1200 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1200, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1199 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1199, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1198 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1198, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1197 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1197, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1196 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1196, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1195 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1195, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1194 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1194, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1193 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1193, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1192 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1192, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1191 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1191, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1190 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1190, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1189 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1189, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1188 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1188, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1187 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1187, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1186 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1186, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1185 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1185, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1184 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1184, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1183 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1183, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1182 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1182, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1181 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1181, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1180 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1180, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1179 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1179, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1178 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1178, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1177 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1177, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1176 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1176, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1175 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1175, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1174 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1174, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1172 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1172, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1171 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1171, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1170 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1170, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1169 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1169, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1168 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1168, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1166 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1166, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1165 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1165, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1163 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1163, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1159 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
953 ptrace(PTRACE_ATTACH, 1159, 0, 0) = -1 EPERM (Operation not permitted)
1208 +++ exited with 0 +++
1159 --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=1208,
si_status=0, si_utime=0, si_stime=0} ---
1163 +++ exited with 0 +++
1164 +++ exited with 0 +++
1165 +++ exited with 0 +++
1166 +++ exited with 0 +++
1169 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1168 +++ exited with 0 +++
1169 +++ exited with 0 +++
1170 +++ exited with 0 +++
1171 +++ exited with 0 +++
1172 +++ exited with 0 +++
1174 +++ exited with 0 +++
1175 +++ exited with 0 +++
1176 +++ exited with 0 +++
1178 +++ exited with 0 +++
1180 +++ exited with 0 +++
1177 +++ exited with 0 +++
1179 +++ exited with 0 +++
1181 +++ exited with 0 +++
1182 +++ exited with 0 +++
1183 +++ exited with 0 +++
1184 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1184 +++ exited with 0 +++
1185 +++ exited with 0 +++
1186 +++ exited with 0 +++
1187 +++ exited with 0 +++
1188 +++ exited with 0 +++
1189 +++ exited with 0 +++
1190 +++ exited with 0 +++
1191 +++ exited with 0 +++
1192 +++ exited with 0 +++
1193 +++ exited with 0 +++
1194 +++ exited with 0 +++
1195 +++ exited with 0 +++
1196 +++ exited with 0 +++
1197 +++ exited with 0 +++
1198 +++ exited with 0 +++
1199 +++ exited with 0 +++
1200 +++ exited with 0 +++
1159 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1210 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1210 +++ exited with 0 +++
1209 +++ exited with 0 +++
1000 +++ exited with 0 +++
1150 +++ exited with 0 +++
1151 +++ exited with 0 +++
1007 +++ exited with 0 +++
1003 +++ exited with 0 +++
1004 +++ exited with 0 +++
1005 +++ exited with 0 +++
1006 +++ exited with 0 +++
1008 +++ exited with 0 +++
1058 +++ exited with 0 +++
1015 +++ exited with 0 +++
1017 +++ exited with 0 +++
1019 +++ exited with 0 +++
1001 +++ exited with 0 +++
996 +++ exited with 0 +++
1092 +++ exited with 0 +++
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1090 --- SIGUSR1 {si_signo=SIGUSR1, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1088 +++ exited with 0 +++
1090 +++ exited with 0 +++
1140 +++ exited with 0 +++
1139 +++ exited with 0 +++
1089 +++ exited with 0 +++
997 +++ exited with 0 +++
999 +++ exited with 0 +++
1212 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
1211 +++ exited with 0 +++
1212 +++ exited with 0 +++
994 +++ exited with 0 +++
979 +++ exited with 0 +++
978 +++ exited with 0 +++
976 +++ exited with 0 +++
975 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
975 +++ exited with 0 +++
971 +++ exited with 0 +++
967 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
969 +++ exited with 0 +++
972 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
967 +++ exited with 0 +++
972 +++ exited with 0 +++
973 +++ exited with 0 +++
963 +++ exited with 0 +++
964 --- SIGQUIT {si_signo=SIGQUIT, si_code=SI_TKILL, si_pid=953,
si_uid=1000} ---
960 +++ exited with 0 +++
964 +++ exited with 0 +++
1149 +++ exited with 0 +++
1213 +++ exited with 0 +++
1214 +++ exited with 0 +++
1215 +++ exited with 0 +++
959 +++ exited with 0 +++
953 +++ exited with 0 +++

--
Felipe Contreras

2013-08-05 14:31:54

by Al Viro

[permalink] [raw]
Subject: Re: O_TMPFILE fs corruption (Re: Linux 3.11-rc4)

On Sun, Aug 04, 2013 at 08:45:16PM -0700, Linus Torvalds wrote:
> The patch looks right to me - we should pass in similar flags for the
> create case as for tmpfile to the filesystem.
>
> But let's make sure we're all on the same page. Al?

ACK. It used to happen as a side effect of O_CREAT being required
in the flags, but that broke once we switched to use of O_DIRECTORY.

I've applied both Andi's patches (along with one from Zheng Liu) in
vfs.git #for-linus. Another thing in there is reiserfs umount
deadlock fix - that one needs to go in all branches starting from
2.6.23.

Please, pull from the usual place -
git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs.git for-linus

Shortlog:
Al Viro (1):
reiserfs: fix deadlock in umount

Andy Lutomirski (2):
fs: Fix file mode for O_TMPFILE
fs: Allow unprivileged linkat(..., AT_EMPTY_PATH) aka flink

Zheng Liu (1):
vfs: add missing check for __O_TMPFILE in fcntl_init()

Diffstat:
fs/fcntl.c | 4 +-
fs/namei.c | 10 ++----
fs/open.c | 2 +-
fs/reiserfs/procfs.c | 99 ++++++++++----------------------------------------
fs/reiserfs/super.c | 3 +-
5 files changed, 26 insertions(+), 92 deletions(-)

2013-08-05 14:45:01

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On 08/05, Felipe Contreras wrote:
>
> On Mon, Aug 5, 2013 at 8:29 AM, Oleg Nesterov <[email protected]> wrote:
> >
> > Could you please run wine under strace
> >
> > strace -f -e ptrace -o LOG wine ...
> >
> > and show the result?
>
> Sure.

Thanks.

> Note that the crash might have happened some time before the end
> of the log.

Hmm. It should not crash under strace... please see below.

> 953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)

OK, so it actually uses ptrace ;)

PTRACE_ATTACH fails because this child is already traced by strace, I guess.

So does Starcraft crash this way? Or does it fail in some other way?

And just in case... perhaps wine does some logging too?

Oleg.

2013-08-05 17:02:20

by Felipe Contreras

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 9:39 AM, Oleg Nesterov <[email protected]> wrote:
> On 08/05, Felipe Contreras wrote:
>>
>> On Mon, Aug 5, 2013 at 8:29 AM, Oleg Nesterov <[email protected]> wrote:
>> >
>> > Could you please run wine under strace
>> >
>> > strace -f -e ptrace -o LOG wine ...
>> >
>> > and show the result?
>>
>> Sure.
>
> Thanks.
>
>> Note that the crash might have happened some time before the end
>> of the log.
>
> Hmm. It should not crash under strace... please see below.
>
>> 953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
>
> OK, so it actually uses ptrace ;)
>
> PTRACE_ATTACH fails because this child is already traced by strace, I guess.
>
> So does Starcraft crash this way? Or does it fail in some other way?

It's crashing just the same.

> And just in case... perhaps wine does some logging too?

Yeah, but there doesn't seem to be anything interesting:

http://bugs.winehq.org/attachment.cgi?id=45489

--
Felipe Contreras

2013-08-05 17:17:08

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On 08/05, Felipe Contreras wrote:
>
> On Mon, Aug 5, 2013 at 9:39 AM, Oleg Nesterov <[email protected]> wrote:
> >
> > Hmm. It should not crash under strace... please see below.
> >
> >> 953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
> >
> > OK, so it actually uses ptrace ;)
> >
> > PTRACE_ATTACH fails because this child is already traced by strace, I guess.
> >
> > So does Starcraft crash this way? Or does it fail in some other way?
>
> It's crashing just the same.

But then it is not clear how fab840f can make any difference.

wine can not use ptrace when it runs after "strace -f". But, to remind,
I know nothing about wine. Perhaps wine uses some daemons which actually
run/ptrace the workload?

> > And just in case... perhaps wine does some logging too?
>
> Yeah, but there doesn't seem to be anything interesting:
>
> http://bugs.winehq.org/attachment.cgi?id=45489

at least there is certainly nothing interesting for me since
I don't understand this ;) Thanks.

Oleg.

2013-08-05 17:37:21

by Jörn Engel

[permalink] [raw]
Subject: Re: O_TMPFILE fs corruption (Re: Linux 3.11-rc4)

On Mon, 5 August 2013 01:26:46 -0700, Christoph Hellwig wrote:
> On Sun, Aug 04, 2013 at 08:45:16PM -0700, Linus Torvalds wrote:
> > The patch looks right to me - we should pass in similar flags for the
> > create case as for tmpfile to the filesystem.
> >
> > But let's make sure we're all on the same page. Al?
>
> Given all the problems and very limited fs support I'd much prefer
> disabling O_TMPFILE for this release. That'd give it the needed
> exposure it was missing by being merged without any previous public
> review.

Agreed. This has not been in -next at all. It is not an urgent
security thing or regression fix, so there is no good excuse for
avoiding the normal process.

Jörn

--
For a successful technology, reality must take precedence over public
relations, for nature cannot be fooled.
-- Richard Feynman

2013-08-05 17:39:17

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 6:29 AM, Oleg Nesterov <[email protected]> wrote:
>
> I never used wine, but I am puzzled anyway. This patch really looks
> like a simple and minor bugfix.

The patch is indeed trivial, but.. What's the locking here?

Afaik, ptrace_detach() by the parent can race with do_exit() by the
child, and they now _both_ do flush_ptrace_hw_breakpoint(). Or am I
wrong? We have that whole "get tasklist_lock for writing and then
check child->ptrace" logic there exactly due to that race, no?

That said, Felipe, can you double-check that it's not timing-related
in some subtle way, and test multiple times with just that commit
reverted (and not reverted) to make sure that it's 100% that one
single line by that particular commit? Because it does seem very
benign..

Linus

2013-08-05 17:40:50

by Felipe Contreras

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 12:11 PM, Oleg Nesterov <[email protected]> wrote:
> On 08/05, Felipe Contreras wrote:
>>
>> On Mon, Aug 5, 2013 at 9:39 AM, Oleg Nesterov <[email protected]> wrote:
>> >
>> > Hmm. It should not crash under strace... please see below.
>> >
>> >> 953 ptrace(PTRACE_ATTACH, 1035, 0, 0) = -1 EPERM (Operation not permitted)
>> >
>> > OK, so it actually uses ptrace ;)
>> >
>> > PTRACE_ATTACH fails because this child is already traced by strace, I guess.
>> >
>> > So does Starcraft crash this way? Or does it fail in some other way?
>>
>> It's crashing just the same.
>
> But then it is not clear how fab840f can make any difference.

Yeah, it's very strange.

> wine can not use ptrace when it runs after "strace -f". But, to remind,
> I know nothing about wine. Perhaps wine uses some daemons which actually
> run/ptrace the workload?

There's this thing called wineserver, I'm not exactly sure how it would affect.

But I found this:

http://askubuntu.com/questions/146160/what-is-the-ptrace-scope-workaround-for-wine-programs-and-are-there-any-risks

Would it be possible to just revert that patch for v3.11, and fix it later?

--
Felipe Contreras

2013-08-05 17:43:32

by Felipe Contreras

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 12:39 PM, Linus Torvalds
<[email protected]> wrote:

> That said, Felipe, can you double-check that it's not timing-related
> in some subtle way, and test multiple times with just that commit
> reverted (and not reverted) to make sure that it's 100% that one
> single line by that particular commit? Because it does seem very
> benign..

I tested perhaps dozens of times with the patch, and every one of them
failed. I tested at least 6 times with the patch reverted, every one
of them worked.

I'm fairly certain that it's 100% reproducible, so it doesn't seem to be a race.

But I'll double-check.

--
Felipe Contreras

2013-08-05 17:52:51

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On 08/05, Linus Torvalds wrote:
>
> On Mon, Aug 5, 2013 at 6:29 AM, Oleg Nesterov <[email protected]> wrote:
> >
> > I never used wine, but I am puzzled anyway. This patch really looks
> > like a simple and minor bugfix.
>
> The patch is indeed trivial, but.. What's the locking here?
>
> Afaik, ptrace_detach() by the parent can race with do_exit() by the
> child, and they now _both_ do flush_ptrace_hw_breakpoint().

That would be bad. And that is why exit_ptrace() doesn't do this.

But we rely on ptrace_freeze_traced(). If the child can exit (or
even run), we have other problems which were hopefully fixed by
9899d11f "ensure arch_ptrace/ptrace_request can never race with
SIGKILL"

> We have that whole "get tasklist_lock for writing and then
> check child->ptrace" logic there exactly due to that race, no?

Exactly. But note that this code is very old. We can remove the
"This child can be already killed" logic, and we can do more
simplifications in ptrace paths.

In fact, some recent changes already rely on the fact the tracee
can't go away, say ptrace_peek_siginfo()->spin_lock_irq(siglock)
is not safe without ptrace_freeze_traced().

Oleg.

2013-08-05 18:01:51

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On 08/05, Felipe Contreras wrote:
>
> Would it be possible to just revert that patch for v3.11, and fix it later?

Sure, but it would be nice to investigate.

I think we have the time for revert, this patch was added after 3.10
so I hope we can always revert it before 3.11.

Felipe, I'll try to make a stupid debugging patch tomorrow, perhaps
you can test it...

Oleg.

2013-08-05 18:08:21

by Felipe Contreras

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 12:43 PM, Felipe Contreras
<[email protected]> wrote:
> On Mon, Aug 5, 2013 at 12:39 PM, Linus Torvalds
> <[email protected]> wrote:
>
>> That said, Felipe, can you double-check that it's not timing-related
>> in some subtle way, and test multiple times with just that commit
>> reverted (and not reverted) to make sure that it's 100% that one
>> single line by that particular commit? Because it does seem very
>> benign..
>
> I tested perhaps dozens of times with the patch, and every one of them
> failed. I tested at least 6 times with the patch reverted, every one
> of them worked.
>
> I'm fairly certain that it's 100% reproducible, so it doesn't seem to be a race.
>
> But I'll double-check.

Yeah, I just tested 5 times; with the patch all 5 times failed,
without the patch all 5 times worked.

--
Felipe Contreras

2013-08-05 18:51:53

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On 08/04, Felipe Contreras wrote:
>
> I found a regression while running all v3.11-rcX kernels; Starcract II
> through wine crashes. The culprit is fab840f (ptrace: PTRACE_DETACH
> should do flush_ptrace_hw_breakpoint(child)), I revert that commit and
> there's no crash.

Heh. I pulled wine-git.

set_thread_context() does a lot of PTRACE_POKEUSER requests and then
it calls resume_after_ptrace() which simply does PTRACE_DETACH.

I'll recheck tomorrow, but it really looks as if it _wants_ to leak
the debug registers after detach. And more, it does PTRACE_ATTACH
only to set these regs.

And this is exactly what fab840f tries to prevent.

Oleg.

2013-08-05 18:55:02

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 11:46 AM, Oleg Nesterov <[email protected]> wrote:
>
> Heh. I pulled wine-git.
>
> set_thread_context() does a lot of PTRACE_POKEUSER requests and then
> it calls resume_after_ptrace() which simply does PTRACE_DETACH.
>
> I'll recheck tomorrow, but it really looks as if it _wants_ to leak
> the debug registers after detach. And more, it does PTRACE_ATTACH
> only to set these regs.
>
> And this is exactly what fab840f tries to prevent.

Ok, so I guess it's effectively the ABI, and we should just make the
rule be that "if you don't want stale breakpoints, then remove the
breakpoints when you detach".

And thus reverting it the right thing to do. Agreed?

Linus

2013-08-05 19:02:37

by Oleg Nesterov

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On 08/05, Linus Torvalds wrote:
>
> On Mon, Aug 5, 2013 at 11:46 AM, Oleg Nesterov <[email protected]> wrote:
> >
> > Heh. I pulled wine-git.
> >
> > set_thread_context() does a lot of PTRACE_POKEUSER requests and then
> > it calls resume_after_ptrace() which simply does PTRACE_DETACH.
> >
> > I'll recheck tomorrow, but it really looks as if it _wants_ to leak
> > the debug registers after detach. And more, it does PTRACE_ATTACH
> > only to set these regs.
> >
> > And this is exactly what fab840f tries to prevent.
>
> Ok, so I guess it's effectively the ABI, and we should just make the
> rule be that "if you don't want stale breakpoints, then remove the
> breakpoints when you detach".

I'm afraid yes.

> And thus reverting it the right thing to do. Agreed?

Yes, yes, sure. I'll write the changelog and send git-revert tomorrow,
unless you do it yourself.

Oleg.

2013-08-05 19:06:33

by Linus Torvalds

[permalink] [raw]
Subject: Re: Linux 3.11-rc4

On Mon, Aug 5, 2013 at 11:57 AM, Oleg Nesterov <[email protected]> wrote:
>
> Yes, yes, sure. I'll write the changelog and send git-revert tomorrow,

Thanks.

Linus

2013-08-06 15:48:53

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH 0/1] (Was: Linux 3.11-rc4)

Felipe, thanks a lot. Yes fab840f is wrong, this "bug" is already
used as a feature.

Grazvydas, I cc'ed you because I do not really understand
set_thread_context(). It does a couple of extra PTRACE_POKEUSER's
with the "Linux 2.6.33+ needs ..." comment. It would be nice if you
can check if 3.11 still needs this, in this case we probably need
some more minor fixes in this area.

In fact the first comment doesn't look right, when I look at 2.6.33
it seems that POKEUSER(DR0-DR6) should be fine without POKEUSER(DR7),
but this doesn't really matter and I can be easily wrong. Anyway
this looks like a workaround to hide kernel bugs, I will appreciate
it if you can tell if wine still needs it or not.

Oleg.

2013-08-06 15:49:16

by Oleg Nesterov

[permalink] [raw]
Subject: [PATCH 1/1] Revert "ptrace: PTRACE_DETACH should do flush_ptrace_hw_breakpoint(child)"

This reverts commit fab840fc2d542fabcab903db8e03589a6702ba5f.

This commit even has the test-case to prove that the tracee
can be killed by SIGTRAP if the debugger does not remove the
breakpoints before PTRACE_DETACH.

However, this is exactly what wineserver deliberately does,
set_thread_context() calls PTRACE_ATTACH + PTRACE_DETACH just
for PTRACE_POKEUSER(DR*) in between.

So we should revert this fix and document that PTRACE_DETACH
should keep the breakpoints.

Reported-by: Felipe Contreras <[email protected]>
Signed-off-by: Oleg Nesterov <[email protected]>
---
kernel/ptrace.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/kernel/ptrace.c b/kernel/ptrace.c
index 4041f57..a146ee3 100644
--- a/kernel/ptrace.c
+++ b/kernel/ptrace.c
@@ -469,7 +469,6 @@ static int ptrace_detach(struct task_struct *child, unsigned int data)
/* Architecture-specific hardware disable .. */
ptrace_disable(child);
clear_tsk_thread_flag(child, TIF_SYSCALL_TRACE);
- flush_ptrace_hw_breakpoint(child);

write_lock_irq(&tasklist_lock);
/*
--
1.5.5.1

2013-08-07 12:05:41

by Grazvydas Ignotas

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On Tue, Aug 6, 2013 at 6:43 PM, Oleg Nesterov <[email protected]> wrote:
> Felipe, thanks a lot. Yes fab840f is wrong, this "bug" is already
> used as a feature.
>
> Grazvydas, I cc'ed you because I do not really understand
> set_thread_context(). It does a couple of extra PTRACE_POKEUSER's
> with the "Linux 2.6.33+ needs ..." comment. It would be nice if you
> can check if 3.11 still needs this, in this case we probably need
> some more minor fixes in this area.
>
> In fact the first comment doesn't look right, when I look at 2.6.33
> it seems that POKEUSER(DR0-DR6) should be fine without POKEUSER(DR7),
> but this doesn't really matter and I can be easily wrong. Anyway
> this looks like a workaround to hide kernel bugs, I will appreciate
> it if you can tell if wine still needs it or not.

It's not that wine needs all this, it's the Windows games that use
debug registers to store random values to them for their copy
protection stuff. Older Linux kernels used to not care, but newer ones
started validating what's written to debug registers, and those games
started to break under wine. My wine commits try to sidestep these
kernel restrictions/sanity checking.

Personally I'd say the kernel should not limit what's written to debug
registers. Why can't I write insane values to registers in _my_
hardware? It's not like it's going to break the hardware or anything.

--
Gra?vydas

2013-08-07 17:27:48

by Oleg Nesterov

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On 08/07, Grazvydas Ignotas wrote:
>
> It's not that wine needs all this, it's the Windows games that use
> debug registers to store random values to them for their copy
> protection stuff.

Thanks.

> My wine commits try to sidestep these
> kernel restrictions/sanity checking.

My point was, it seems that starting from 3.11 you can remove both
extra PTRACE_POKEUSER's. Unless, of course, the initial state of dr7
doesn't match dr0 - dr6 set_thread_context() is going to update.

Anyway I agree this interface is very confusing and inconvenient.

And just in case, it is not that I think set_thread_context() should
be changed, I am just wondering whether the kernel still has the bugs
which should be fixed.

> Personally I'd say the kernel should not limit what's written to debug
> registers. Why can't I write insane values to registers in _my_
> hardware? It's not like it's going to break the hardware or anything.

Even if this is safe (and btw I have no idea if this is always true or
not ;), how a user can notice the error then?

Oleg.

2013-08-07 19:26:19

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On Wed, Aug 7, 2013 at 5:05 AM, Grazvydas Ignotas <[email protected]> wrote:
>
> Personally I'd say the kernel should not limit what's written to debug
> registers. Why can't I write insane values to registers in _my_
> hardware? It's not like it's going to break the hardware or anything.

It may be your hardware, but do you know what might be running on it?
It's a security issue: setting debug traps on kernel code/data
addresses can not only leak information, it can cause serious trouble
(taking a debug trap on the first instruction of an NMI handler etc)
including kernel stack corruption...

You do want the kernel to give you file permission checking even
though it's "your machine", don't you? Very similar thing.

The fact that windows allows it is kind of irrelevant. They aren't
exactly known for caring deeply.

Linus

2013-08-07 19:33:10

by Oleg Nesterov

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On 08/07, Linus Torvalds wrote:
>
> It's a security issue: setting debug traps on kernel code/data
> addresses can not only leak information, it can cause serious trouble
> (taking a debug trap on the first instruction of an NMI handler etc)
> including kernel stack corruption...

I guess Grazvydas only meant the "unnecessary" align/len/type checks.

But you are right of course.

Oleg.

2013-08-07 19:47:56

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On Wed, Aug 7, 2013 at 12:27 PM, Oleg Nesterov <[email protected]> wrote:
>
> I guess Grazvydas only meant the "unnecessary" align/len/type checks.

Yeah, some of them may be a bit questionable, but we don't necessarily
know what each microarchitecture does for unsupported ("undefined")
situations.

Intel actually has a lot of errata for their CPU's that they won't
fix, and they tend to be all about exactly the kinds of things that
the architecture manuals say "don't do this". Things like "TSS segment
crosses a page, and you take a page fault in the middle of a task
switch" etc.

Now, I do agree that the debug registers are *much* less likely to
have those kinds of really subtle issues, so maybe relaxing some of
the tests might be reasonable. I'd be a bit nervous about it, but if
it's *only* the length/alignment, and Intel people can be convinced
that it doesn't result in any nasty undefined behavior (as long as the
address is in user space), maybe we could make that change just to
make it easier for Wine.

But the kernel address checking definitely needs to stay around for
security reasons.

Linus

2013-08-08 15:46:52

by Oleg Nesterov

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On 08/07, Linus Torvalds wrote:
>
> Now, I do agree that the debug registers are *much* less likely to
> have those kinds of really subtle issues, so maybe relaxing some of
> the tests might be reasonable. I'd be a bit nervous about it, but if
> it's *only* the length/alignment, and Intel people can be convinced
> that it doesn't result in any nasty undefined behavior (as long as the
> address is in user space), maybe we could make that change just to
> make it easier for Wine.

Oh, I do not know. And again, this way a user can't notice the problem
if the arguments are wrong.

But personally I think it would be nice to cleanup the perf interface,
although probably it is too later.

On x86 execute breakpoints are only a single byte, which has to be
the first byte of the instruction. IOW the hardware requires len = 1
in dr7 or it doesn't work (iirc).

But for some reason perf requires bp_len = sizeof(long), not 1. And
note that it sets info->len = X86_BREAKPOINT_LEN_X. The comment says:

x86 inst breakpoints need to have a specific undefined len

but despite its "special" name LEN_X is simply LEN_1, and other code
relies on this fact.

Now, ptrace correctly requires DR_LEN_1. So arch_bp_generic_fields()
translates this into "gen_len = sizeof(long)" for validation.

arch_build_bp_info() thinks that X86_BREAKPOINT_EXECUTE should have
->bp_len == sizeof(long), so we translate it back into LEN_1 internally.

This looks confusing, imho. And imho X86_BREAKPOINT_LEN_X should die.

> But the kernel address checking definitely needs to stay around for
> security reasons.

Sure. And btw it doesn't look right. I sent the patch below twice (iirc),
perhaps I should resend it again.

Oleg.


Date: Fri, 9 Nov 2012 19:29:43 +0100
Subject: [PATCH] arch_check_bp_in_kernelspace: fix the range check

arch_check_bp_in_kernelspace() tries to avoid the overflow and does 2
TASK_SIZE checks but it needs OR, not AND. Consider va = TASK_SIZE -1
and len = 2 case.

Note: TASK_SIZE doesn't look right at least on x86, I think it should
be replaced by TASK_SIZE_MAX.

Signed-off-by: Oleg Nesterov <[email protected]>

--- x/arch/arm64/kernel/hw_breakpoint.c
+++ x/arch/arm64/kernel/hw_breakpoint.c
@@ -293,7 +293,7 @@ int arch_check_bp_in_kernelspace(struct
va = info->address;
len = get_hbp_len(info->ctrl.len);

- return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE);
+ return (va >= TASK_SIZE) || ((va + len - 1) >= TASK_SIZE);
}

/*
--- x/arch/arm/kernel/hw_breakpoint.c
+++ x/arch/arm/kernel/hw_breakpoint.c
@@ -464,7 +464,7 @@ int arch_check_bp_in_kernelspace(struct
va = info->address;
len = get_hbp_len(info->ctrl.len);

- return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE);
+ return (va >= TASK_SIZE) || ((va + len - 1) >= TASK_SIZE);
}

/*
--- x/arch/sh/kernel/hw_breakpoint.c
+++ x/arch/sh/kernel/hw_breakpoint.c
@@ -132,7 +132,7 @@ int arch_check_bp_in_kernelspace(struct
va = info->address;
len = get_hbp_len(info->len);

- return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE);
+ return (va >= TASK_SIZE) || ((va + len - 1) >= TASK_SIZE);
}

int arch_bp_generic_fields(int sh_len, int sh_type,
--- x/arch/x86/kernel/hw_breakpoint.c
+++ x/arch/x86/kernel/hw_breakpoint.c
@@ -200,7 +200,7 @@ int arch_check_bp_in_kernelspace(struct
va = info->address;
len = get_hbp_len(info->len);

- return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE);
+ return (va >= TASK_SIZE) || ((va + len - 1) >= TASK_SIZE);
}

int arch_bp_generic_fields(int x86_len, int x86_type,

2013-08-08 16:25:56

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On Thu, Aug 8, 2013 at 8:41 AM, Oleg Nesterov <[email protected]> wrote:
>
> On x86 execute breakpoints are only a single byte, which has to be
> the first byte of the instruction. IOW the hardware requires len = 1
> in dr7 or it doesn't work (iirc).
>
> But for some reason perf requires bp_len = sizeof(long), not 1. And
> note that it sets info->len = X86_BREAKPOINT_LEN_X. The comment says:
>
> x86 inst breakpoints need to have a specific undefined len
>
> but despite its "special" name LEN_X is simply LEN_1, and other code
> relies on this fact.
>
> Now, ptrace correctly requires DR_LEN_1. So arch_bp_generic_fields()
> translates this into "gen_len = sizeof(long)" for validation.

Yeah, that just sounds insane. I suspect it's some misguided attempt
to be compatible either with some broken old version of perf. But if
so, I agree that the compatibility code should be elsewhere, and not
in "let's turn the _correct_ length of 1 into some random crap because
we screwed up elsewhere".

>> But the kernel address checking definitely needs to stay around for
>> security reasons.
>
> Sure. And btw it doesn't look right. I sent the patch below twice (iirc),
> perhaps I should resend it again.

Your patch looks correct.

That said,

> - return (va >= TASK_SIZE) && ((va + len - 1) >= TASK_SIZE);
> + return (va >= TASK_SIZE) || ((va + len - 1) >= TASK_SIZE);

I'd much rather make this be more clearly about overflow, and write
this as something like

last = va + len - 1;
/* Check for overflow too */
if (last < va || end >= TASK_SIZE)

because quite frankly, the "va >= TASK_SIZE" check is kind of insane.
It makes very little semantic sense. The rewritten test can be seen as
two independent tests that both make sense individually (the first
checks for overflow, the second checks that the range isn't in kernel
space).

In fact, the overflow check could/should even be done in generic code,
methinks. There's nothing architecture-specific about that.

Linus

2013-08-08 16:54:36

by Frederic Weisbecker

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On Thu, Aug 08, 2013 at 05:41:07PM +0200, Oleg Nesterov wrote:
> On 08/07, Linus Torvalds wrote:
> >
> > Now, I do agree that the debug registers are *much* less likely to
> > have those kinds of really subtle issues, so maybe relaxing some of
> > the tests might be reasonable. I'd be a bit nervous about it, but if
> > it's *only* the length/alignment, and Intel people can be convinced
> > that it doesn't result in any nasty undefined behavior (as long as the
> > address is in user space), maybe we could make that change just to
> > make it easier for Wine.
>
> Oh, I do not know. And again, this way a user can't notice the problem
> if the arguments are wrong.
>
> But personally I think it would be nice to cleanup the perf interface,
> although probably it is too later.
>
> On x86 execute breakpoints are only a single byte, which has to be
> the first byte of the instruction. IOW the hardware requires len = 1
> in dr7 or it doesn't work (iirc).
>
> But for some reason perf requires bp_len = sizeof(long), not 1. And
> note that it sets info->len = X86_BREAKPOINT_LEN_X. The comment says:
>
> x86 inst breakpoints need to have a specific undefined len
>
> but despite its "special" name LEN_X is simply LEN_1, and other code
> relies on this fact.
>
> Now, ptrace correctly requires DR_LEN_1. So arch_bp_generic_fields()
> translates this into "gen_len = sizeof(long)" for validation.
>
> arch_build_bp_info() thinks that X86_BREAKPOINT_EXECUTE should have
> ->bp_len == sizeof(long), so we translate it back into LEN_1 internally.

I did this interface and I'm sorry about it.

This bp_len == sizeof(long) requirement comes from a very buggy conception
I had at the time I wrote that. I thought it would be pretty intuitive to
assume that instruction breakpoints should be the size of the instruction
itself as a generic interface for all archs. But at least x86 instructions
size aren't static. That sizeof(long) assumption just popped up from nowhere
at 5 am two years ago I guess :-(

And worse: I realized that mistake later but never moved it in the top of the
TODO-list pile because I had the feeling that nobody was using the perf breakpoint
interface anyway.

I'm all for fixing this. May be we can start by backporting a patch that
ignores the value of gen_len for instruction breakpoints in x86?

I don't know how other archs use it. I need to check. But this bp_len
should rather be used for range breakpoints on archs that support it. I
hope we can still reuse it if the damage of my initial misconception
isn't too widely expanded.

What do you think?

>
> This looks confusing, imho. And imho X86_BREAKPOINT_LEN_X should die.

Yep.

Thanks.

2013-08-08 18:21:00

by Oleg Nesterov

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On 08/08, Frederic Weisbecker wrote:
>
> I'm all for fixing this. May be we can start by backporting a patch that
> ignores the value of gen_len for instruction breakpoints in x86?

Or perhaps we can start with the something like below.

But probably we should move "attr.bp_len == HW_BREAKPOINT_LEN_1" check
from arch_build_bp_info() to its caller, arch_validate_hwbkpt_settings().

Because:

> But this bp_len
> should rather be used for range breakpoints on archs that support it.

Yes, exactly, and we already have the patches for amd, so bp->len can
be actually != 1 but currently we can't support because it is checked
in arch_build_bp_info().

Oleg.

--- x/arch/x86/kernel/hw_breakpoint.c
+++ x/arch/x86/kernel/hw_breakpoint.c
@@ -208,19 +208,16 @@ int arch_bp_generic_fields(int x86_len,
{
/* Type */
switch (x86_type) {
- case X86_BREAKPOINT_EXECUTE:
- if (x86_len != X86_BREAKPOINT_LEN_X)
- return -EINVAL;
-
- *gen_type = HW_BREAKPOINT_X;
- *gen_len = sizeof(long);
- return 0;
case X86_BREAKPOINT_WRITE:
*gen_type = HW_BREAKPOINT_W;
break;
case X86_BREAKPOINT_RW:
*gen_type = HW_BREAKPOINT_W | HW_BREAKPOINT_R;
break;
+ case X86_BREAKPOINT_EXECUTE:
+ *gen_type = HW_BREAKPOINT_X;
+ if (x86_len == X86_BREAKPOINT_LEN_1)
+ break;
default:
return -EINVAL;
}
@@ -265,15 +262,11 @@ static int arch_build_bp_info(struct per
break;
case HW_BREAKPOINT_X:
info->type = X86_BREAKPOINT_EXECUTE;
- /*
- * x86 inst breakpoints need to have a specific undefined len.
- * But we still need to check userspace is not trying to setup
- * an unsupported length, to get a range breakpoint for example.
- */
- if (bp->attr.bp_len == sizeof(long)) {
- info->len = X86_BREAKPOINT_LEN_X;
- return 0;
- }
+ /* until we change tools/perf */
+ if (bp->attr.bp_len == sizeof(long))
+ bp->attr.bp_len = HW_BREAKPOINT_LEN_1;
+ if (bp->attr.bp_len == HW_BREAKPOINT_LEN_1)
+ break;
default:
return -EINVAL;
}

2013-08-09 16:45:55

by Frederic Weisbecker

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On Thu, Aug 08, 2013 at 08:15:21PM +0200, Oleg Nesterov wrote:
> On 08/08, Frederic Weisbecker wrote:
> >
> > I'm all for fixing this. May be we can start by backporting a patch that
> > ignores the value of gen_len for instruction breakpoints in x86?
>
> Or perhaps we can start with the something like below.

(commented on the diff below)

>
> But probably we should move "attr.bp_len == HW_BREAKPOINT_LEN_1" check
> from arch_build_bp_info() to its caller, arch_validate_hwbkpt_settings().
>
> Because:
>
> > But this bp_len
> > should rather be used for range breakpoints on archs that support it.
>
> Yes, exactly, and we already have the patches for amd, so bp->len can
> be actually != 1 but currently we can't support because it is checked
> in arch_build_bp_info().

Hmm, but how moving that to arch_validate_hwbkpt_seetings() would solve
the issue?

>
> Oleg.
>
> --- x/arch/x86/kernel/hw_breakpoint.c
> +++ x/arch/x86/kernel/hw_breakpoint.c
> @@ -208,19 +208,16 @@ int arch_bp_generic_fields(int x86_len,
> {
> /* Type */
> switch (x86_type) {
> - case X86_BREAKPOINT_EXECUTE:
> - if (x86_len != X86_BREAKPOINT_LEN_X)
> - return -EINVAL;
> -
> - *gen_type = HW_BREAKPOINT_X;
> - *gen_len = sizeof(long);
> - return 0;
> case X86_BREAKPOINT_WRITE:
> *gen_type = HW_BREAKPOINT_W;
> break;
> case X86_BREAKPOINT_RW:
> *gen_type = HW_BREAKPOINT_W | HW_BREAKPOINT_R;
> break;
> + case X86_BREAKPOINT_EXECUTE:
> + *gen_type = HW_BREAKPOINT_X;
> + if (x86_len == X86_BREAKPOINT_LEN_1)
> +
> break;
> default:
> return -EINVAL;
> }
> @@ -265,15 +262,11 @@ static int arch_build_bp_info(struct per
> break;
> case HW_BREAKPOINT_X:
> info->type = X86_BREAKPOINT_EXECUTE;
> - /*
> - * x86 inst breakpoints need to have a specific undefined len.
> - * But we still need to check userspace is not trying to setup
> - * an unsupported length, to get a range breakpoint for example.
> - */
> - if (bp->attr.bp_len == sizeof(long)) {
> - info->len = X86_BREAKPOINT_LEN_X;
> - return 0;
> - }
> + /* until we change tools/perf */
> + if (bp->attr.bp_len == sizeof(long))
> + bp->attr.bp_len = HW_BREAKPOINT_LEN_1;

Too bad we need to keep that compatibility around. Do you think this could be
a problem for AMD range breakpoints?

We can also fix the tools, then may be we'll be able to remove the kernel hack
compatibility in a few years.

Oh I need to check other archs as well.

thanks.

> + if (bp->attr.bp_len == HW_BREAKPOINT_LEN_1)
> + break;
> default:
> return -EINVAL;
> }
>

2013-08-09 17:17:39

by Oleg Nesterov

[permalink] [raw]
Subject: Re: [PATCH 0/1] (Was: Linux 3.11-rc4)

On 08/09, Frederic Weisbecker wrote:
>
> On Thu, Aug 08, 2013 at 08:15:21PM +0200, Oleg Nesterov wrote:
> > But probably we should move "attr.bp_len == HW_BREAKPOINT_LEN_1" check
> > from arch_build_bp_info() to its caller, arch_validate_hwbkpt_settings().
> >
> > Because:
> >
> > > But this bp_len
> > > should rather be used for range breakpoints on archs that support it.
> >
> > Yes, exactly, and we already have the patches for amd, so bp->len can
> > be actually != 1 but currently we can't support because it is checked
> > in arch_build_bp_info().
>
> Hmm, but how moving that to arch_validate_hwbkpt_seetings() would solve
> the issue?

Of course, this itself won't solve the issue, sorry for confusion.

I meant that arch_build_bp_info(X86_BREAKPOINT_EXECUTE) should not fail
if ->bp_len is wrong, just because (unless we add more complications) it
can't know if it is correct or not (if the hardware supports the range
EXECUTE bps).

arch_validate_hwbkpt_settings() does the additional checks anyway, and
more importantly it checks cpu_has_bpext/mask. So I think it should also
have the additional check for X86_BREAKPOINT_EXECUTE case.

> > @@ -265,15 +262,11 @@ static int arch_build_bp_info(struct per
> > break;
> > case HW_BREAKPOINT_X:
> > info->type = X86_BREAKPOINT_EXECUTE;
> > - /*
> > - * x86 inst breakpoints need to have a specific undefined len.
> > - * But we still need to check userspace is not trying to setup
> > - * an unsupported length, to get a range breakpoint for example.
> > - */
> > - if (bp->attr.bp_len == sizeof(long)) {
> > - info->len = X86_BREAKPOINT_LEN_X;
> > - return 0;
> > - }
> > + /* until we change tools/perf */
> > + if (bp->attr.bp_len == sizeof(long))
> > + bp->attr.bp_len = HW_BREAKPOINT_LEN_1;
>
> Too bad we need to keep that compatibility around.

Yes, agreed... Do you see a better approach?

And just in case, it is not that I think that this hack is much better
than "ignore bp_len" as you suggested before. It's up to you.

> Do you think this could be
> a problem for AMD range breakpoints?

Yes, this doesn't look exactly right if ->bp_len == 8 actually tries to
denote a range. But this is the temporary hack, and at least currently
info->mask is only used if len > LEN_8, so I hope this should be fine.

> We can also fix the tools, then may be we'll be able to remove the kernel hack
> compatibility in a few years.

Or perhaps even earlier ;) And, perhaps after we change the tools we
can add pr_warn() for this case.

> Oh I need to check other archs as well.

Yes, and I'm afraid that tools/perf needs some arch-dependant define for
HW_BREAKPOINT_X's attr.bp_len. Or perhaps attr.bp_len == 0 could mean
"choose the right length" ?

Oleg.