tree 84cbb8c56f3249568c42ca3ccbccb050f27e9b70
parent a56a105ea76353249a44315cc542d1a1cb56e0f7
parent f5eea276d8de10a32e68721707ae8f2fdfaa0960
author Greg Kroah-Hartman <gregkh@google.com> 1495393439 +0200
committer Greg Kroah-Hartman <gregkh@google.com> 1495393439 +0200
mergetag object f5eea276d8de10a32e68721707ae8f2fdfaa0960
 type commit
 tag v4.9.29
 tagger Greg Kroah-Hartman <gregkh@linuxfoundation.org> 1495283341 +0200
 
 This is the 4.9.29 stable release
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlkgNo0ACgkQONu9yGCS
 aT6p0BAAl3Uh7INFmqwgoREcGZKG77glj+MoAabxz3hoD919E/G4AJRSM8l8GY0X
 hacUlIsbbRdrAASD/oxKZL6PwpaHkSda7DqckoQ/WHSmWBQnSw8Eo1KFZ6xsLDW/
 2vHIqd2IlQmKon0RhksekEkGdwG76NwlIoVY8vjhEiX+CAEUv9glJpr73Dd5Ly2z
 GVoYYFIwaFyGHLA4bhBEm07sggWf0ceI3QnRpqDdxhaNv854k8N1nPuTInuc15U1
 FOWcy+toBdL76o3jpD1w4QejYVs7VOn5/29dP6PC7r8pAZd5PXyVsInI51vwYZT4
 fkQ1vseY1frg+g2LCY9HwmtOW7V0Pi99Kkiax3bi4+dg0MiwAhxmoC4dIZLsBsJ3
 cntpH4yUKz6PM0HFzce28Osx3nl/4KrBsen3GsIbaYBM5NgJe243RKjlS9X79jPs
 4SxPtZtWc48UsuCL28qOM2uW3mpB9oWGtiSE/JtCcM6FFHQccLjyXaW/lqvWidY9
 BXwQFPhhTuKL9xjY8B6zbY08+U8sILRfWtpW5fPBZMd3a4eGUM/logQm9YGsKLzy
 X/Gneo9zMx/chRI5Hy7RaOIJ2mTiExboYXb3I135xp0lNQNVHvqU2petgm/DtYHN
 jU3NeVVRt6IGWJJ3OPWIytYITD3kQcEXRGKarhjSVjJ1rR+Kob0=
 =kkO2
 -----END PGP SIGNATURE-----

Merge 4.9.29 into android-4.9

Changes in 4.9.29
	xen: adjust early dom0 p2m handling to xen hypervisor behavior
	target: Fix compare_and_write_callback handling for non GOOD status
	target/fileio: Fix zero-length READ and WRITE handling
	iscsi-target: Set session_fall_back_to_erl0 when forcing reinstatement
	usb: xhci: bInterval quirk for TI TUSB73x0
	usb: host: xhci: print correct command ring address
	USB: serial: ftdi_sio: add device ID for Microsemi/Arrow SF2PLUS Dev Kit
	USB: Proper handling of Race Condition when two USB class drivers try to call init_usb_class simultaneously
	USB: Revert "cdc-wdm: fix "out-of-sync" due to missing notifications"
	staging: vt6656: use off stack for in buffer USB transfers.
	staging: vt6656: use off stack for out buffer USB transfers.
	staging: gdm724x: gdm_mux: fix use-after-free on module unload
	staging: comedi: jr3_pci: fix possible null pointer dereference
	staging: comedi: jr3_pci: cope with jiffies wraparound
	usb: misc: add missing continue in switch
	usb: gadget: legacy gadgets are optional
	usb: Make sure usb/phy/of gets built-in
	usb: hub: Fix error loop seen after hub communication errors
	usb: hub: Do not attempt to autosuspend disconnected devices
	x86/boot: Fix BSS corruption/overwrite bug in early x86 kernel startup
	selftests/x86/ldt_gdt_32: Work around a glibc sigaction() bug
	x86, pmem: Fix cache flushing for iovec write < 8 bytes
	um: Fix PTRACE_POKEUSER on x86_64
	perf/x86: Fix Broadwell-EP DRAM RAPL events
	KVM: x86: fix user triggerable warning in kvm_apic_accept_events()
	KVM: arm/arm64: fix races in kvm_psci_vcpu_on
	arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
	block: fix blk_integrity_register to use template's interval_exp if not 0
	crypto: algif_aead - Require setkey before accept(2)
	crypto: ccp - Use only the relevant interrupt bits
	crypto: ccp - Disable interrupts early on unload
	crypto: ccp - Change ISR handler method for a v3 CCP
	crypto: ccp - Change ISR handler method for a v5 CCP
	dm era: save spacemap metadata root after the pre-commit
	dm rq: check blk_mq_register_dev() return value in dm_mq_init_request_queue()
	dm thin: fix a memory leak when passing discard bio down
	vfio/type1: Remove locked page accounting workqueue
	iov_iter: don't revert iov buffer if csum error
	IB/core: Fix sysfs registration error flow
	IB/core: For multicast functions, verify that LIDs are multicast LIDs
	IB/IPoIB: ibX: failed to create mcg debug file
	IB/mlx4: Fix ib device initialization error flow
	IB/mlx4: Reduce SRIOV multicast cleanup warning message to debug level
	IB/hfi1: Prevent kernel QP post send hard lockups
	perf auxtrace: Fix no_size logic in addr_filter__resolve_kernel_syms()
	ext4: evict inline data when writing to memory map
	orangefs: fix bounds check for listxattr
	orangefs: clean up oversize xattr validation
	orangefs: do not set getattr_time on orangefs_lookup
	orangefs: do not check possibly stale size on truncate
	fs/xattr.c: zero out memory copied to userspace in getxattr
	ceph: fix memory leak in __ceph_setxattr()
	fs/block_dev: always invalidate cleancache in invalidate_bdev()
	mm: prevent potential recursive reclaim due to clearing PF_MEMALLOC
	Fix match_prepath()
	Set unicode flag on cifs echo request to avoid Mac error
	SMB3: Work around mount failure when using SMB3 dialect to Macs
	CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
	cifs: fix leak in FSCTL_ENUM_SNAPS response handling
	cifs: fix CIFS_ENUMERATE_SNAPSHOTS oops
	CIFS: fix oplock break deadlocks
	cifs: fix CIFS_IOC_GET_MNT_INFO oops
	CIFS: add misssing SFM mapping for doublequote
	padata: free correct variable
	device-dax: fix cdev leak
	fscrypt: fix context consistency check when key(s) unavailable
	serial: samsung: Use right device for DMA-mapping calls
	serial: omap: fix runtime-pm handling on unbind
	serial: omap: suspend device on probe errors
	tty: pty: Fix ldisc flush after userspace become aware of the data already
	Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
	Bluetooth: hci_bcm: add missing tty-device sanity check
	Bluetooth: hci_intel: add missing tty-device sanity check
	ipmi: Fix kernel panic at ipmi_ssif_thread()
	libnvdimm, region: fix flush hint detection crash
	libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
	libnvdimm, pfn: fix 'npfns' vs section alignment
	pstore: Fix flags to enable dumps on powerpc
	pstore: Shut down worker when unregistering
	Linux 4.9.29

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
