Commit graph

589004 commits

Author SHA1 Message Date
Linux Build Service Account
250b70e2cf Merge "wcnss: fix the potential memory leak and heap overflow" 2017-04-24 06:47:44 -07:00
Linux Build Service Account
f238d6bc0d Merge "msm: mdss: Separate PP programming to advanced and deferred modes" 2017-04-24 06:47:44 -07:00
Amit Pundir
b834e92977 Revert "USB: gadget: u_ether: Fix data stall issue in RNDIS tethering mode"
This reverts commit 78281f6ed7.

This data stall fix is no longer required in AOSP. It is already
skipped in android-4.9 patchset. Also core change from this
data stall fix is already undone by android-4.4 merge commit
324e88de4a ("Merge tag 'v4.4.32' into android-4.4.y").

This revert patch just clean up the left overs. It also reverts the
compile fix from Change-Id: I38c4f4a850b0329fb4a06b2c7e45558e16d66151
40ceb2c699 ("usb: gadget: Fix compilation problem with tx_qlen field").

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2017-04-24 16:38:49 +05:30
Alexy Joseph
4bf68bf13c ASoC: qdsp6v2: Remove Eagle code
Eagle driver is not in use any more.
Remove the code and associated calls
to it.

CRs-Fixed: 1103106
Change-Id: Ice5333861beda9538f0783b70b3267523d16fd2b
Signed-off-by: Alexy Joseph <alexyj@codeaurora.org>
2017-04-24 02:59:28 -07:00
Sarada Prasanna Garnayak
bf00f32974 wcnss: fix the race condition issue during cal data extraction
The wcnss platform driver update the wlan calibration data
by the user space wlan daemon. The wlan user space daemon store
the updated wlan calibration data reported by wlan firmware in
user space and write it back to the wcnss platform calibration
data buffer for the calibration data download and update.

During the wlan calibration data extraction there are some potential
race condition which leads to memory leak and buffer overflow during
the context switch. Fix the above issue by adding protection code.

CRs-Fixed: 2015791
Change-Id: I231807f6b2d8094d7138b95c659ed6272897ba2d
Signed-off-by: Sarada Prasanna Garnayak <sgarna@codeaurora.org>
2017-04-24 01:48:36 -07:00
Ray Zhang
b2f2c4d53e drm/msm: Add PLL_DELTA property to HDMI connector
Clock recovery needs to update HDMI clock in order to
compensate the clock drift, so add a connector property
named as PLL_DELTA to support it. Meanwhile add a node
in debugfs to expose this functionality.

CRs-Fixed: 2015827
Change-Id: Ifdc7134b33102f112a8e3c659fae6a017ff11461
Signed-off-by: Ray Zhang <rayz@codeaurora.org>
2017-04-24 01:31:30 -07:00
Tirupathi Reddy
d1a1e24a5c clk: qcom: clk-cpu-osm: handle corner cases for APM/MEM-ACC switching
If the open-loop voltage of the highest virtual corner is
below the APM threshold voltage, then OSM should keep
the APM powered by VDD_MX. Also, if the open-loop voltage
of the lowest virtual corner is greater than or equal to
the MEM-ACC threshold voltage, then OSM should program
MEM-ACC settings for Turbo for all corners. Program SEQ_REGn
registers correctly for these two cases.

CRs-Fixed: 2008715
Change-Id: Id9bc91374245d65adda4db337c4fa34afc8f0af9
Signed-off-by: Tirupathi Reddy <tirupath@codeaurora.org>
2017-04-24 12:40:48 +05:30
Hareesh Gundu
d689330ab5 msm: kgsl: Allow draw context to perform only replay on recovery
Robust context attempts to perform a rendering that takes too long
whether due to an infinite loop in a shader or even just a rendering
operation that takes too long on the given hardware. This type of
attempts can result into GPU faults. Robust context expect driver
to replay IB instead skip IB and if it fails on replay context has
to be invalidated.

KGSL_CONTEXT_INVALIDATE_ON_FAULT flag allows draw context to execute
only replay policy on GPU fault recovery instead of going to default
recovery policy. User space has to set this flag during the context
creation.

Change-Id: If42dc5afc7d5ed1226b73ae5abfa2648d7acf2c3
Signed-off-by: Hareesh Gundu <hareeshg@codeaurora.org>
2017-04-23 23:47:46 -07:00
Linux Build Service Account
0bdf562cc7 Merge "defconfig: msm8998: Use RCU_NOCB for RCU subsystem" 2017-04-23 23:13:01 -07:00
Sharat Masetty
e84be6486a drm/msm: Enable per cmdstream profiling for the user
If the user provides a profile buffer identified with a buffer type
MSM_SUBMIT_CMD_PROFILE_BUF, then the driver records the kernel clock
time and gpu ticks at the time of cmdstream submission, and the GPU
records the ticks just before the start of the cmdstream execution and
right after the end of the cmdstream execution.

Change-Id: Ic6298ec5919b18e976ae089ffb0860b8165ce4f3
Signed-off-by: Sharat Masetty <smasetty@codeaurora.org>
2017-04-24 10:28:17 +05:30
Amir Samuelov
b4968ee80c spcom: use mutex on spcom_unlock_ion_buf()
Only the channel owner app can lock/unlock a channel ion buf.
However, if the app share the ION buf FD with its child tasks,
they might wrongly free the same ion buf twice.
The ion driver panic if a non-valid ION buff handle is provided.

Change-Id: Ia8166df5ea314949090f7e94e90eff3a3ed78b19
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
2017-04-23 13:53:27 +03:00
Amir Samuelov
cefed44f00 spcom: always wait for glink LOCAL_DISCONNECT event after glink_close()
Wait for glink LOCAL_DISCONNECT event, even if the channel is not
connected.

Change-Id: I03f20b6dbb2f46d7abd6996e8d298e991cf3f82b
Signed-off-by: Amir Samuelov <amirs@codeaurora.org>
2017-04-23 03:27:30 -07:00
Linux Build Service Account
6cf6835d96 Merge "msm: mdss: check for audio support before notifying frameworks" 2017-04-21 17:57:37 -07:00
Linux Build Service Account
35cc04df55 Merge "msm: mdss: add debug bus support for dsi block" 2017-04-21 17:57:37 -07:00
Linux Build Service Account
0fc565ebdb Merge "FROMLIST: 9p: fix a potential acl leak" 2017-04-21 17:57:35 -07:00
Linux Build Service Account
038de1e53d Merge "soc: qcom: pil: Avoid possible buffer overflow during Modem boot" 2017-04-21 17:57:35 -07:00
Prasad Sodagudi
883e3ea07e sched: Add a check for cpu unbound deferrable timers
Add a check for cpu unbound deferrable timer expiry and raise
softirq for handling the expired timers so that the CPU can
process the cpu unbound deferrable times as early as possible
when a cpu tries to enter/exit idle loop.

Change-Id: Ieffa74fa22a4d25493f5590b5ac1e0d784fcbbad
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
2017-04-21 17:24:12 -07:00
Mark Salyzyn
1cfb211346 ANDROID: fix acl leaks
Fixes regressions associated with commit 073931017b49
("posix_acl: Clear SGID bit when setting file permissions")

Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 32458736
Change-Id: I6ee127dfdf3594d24ccd8560541ac554c5b05eb6
[d-cagle@codeaurora.org: Resolve merge conflicts]
Git-repo: https://android.googlesource.com/kernel/msm/
Git-commit: 74d0e4d3d96d0ca82d39635318a69d55e966b767
Signed-off-by: Dennis Cagle <d-cagle@codeaurora.org>
2017-04-21 11:11:43 -07:00
Cong Wang
bea6f1c779 FROMLIST: 9p: fix a potential acl leak
(https://lkml.org/lkml/2016/12/13/579)

posix_acl_update_mode() could possibly clear 'acl', if so
we leak the memory pointed by 'acl'. Save this pointer
before calling posix_acl_update_mode() and release the memory
if 'acl' really gets cleared.

Reported-by: Mark Salyzyn <salyzyn@android.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Greg Kurz <groug@kaod.org>
Cc: Eric Van Hensbergen <ericvh@gmail.com>
Cc: Ron Minnich <rminnich@sandia.gov>
Cc: Latchesar Ionkov <lucho@ionkov.net>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Bug: 32458736
Change-Id: Ia78da401e6fd1bfd569653bd2cd0ebd3f9c737a0
Git-repo: https://android.googlesource.com/kernel/msm/
Git-commit: 7c780387c931f63fe67830c817f65c1272512bb1
Signed-off-by: Dennis Cagle <d-cagle@codeaurora.org>
2017-04-21 11:09:12 -07:00
Skylar Chang
bdea399022 msm: ipa: fix IPC low priority logging
Allocate IPC low priority on first usage only.

Change-Id: Icea7f0fad9ed34c93641296f68736bbaf2e6eaa9
CRs-Fixed: 2016076
Acked-by: Ady Abraham <adya@qti,qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
2017-04-21 10:42:57 -07:00
Linux Build Service Account
d44796d6ae Merge "arm: dma-mapping: add iova size alignment check" 2017-04-21 09:41:39 -07:00
Linux Build Service Account
f9da89f3ca Merge "lpm-levels: Select lpm for isolated cpu when sleep is disabled" 2017-04-21 09:41:38 -07:00
Linux Build Service Account
2fcd6d4d01 Merge "arm: dma-mapping: set the proper bitmap size" 2017-04-21 09:41:37 -07:00
Linux Build Service Account
3cbe2d2e4e Merge "staging: android: sync: Limit sync log dumping" 2017-04-21 09:41:36 -07:00
Linux Build Service Account
9b9651811b Merge "ARM: dts: msm: Add dts setting for a530 DRM on msm8996" 2017-04-21 09:41:35 -07:00
Linux Build Service Account
94d3609ffa Merge "iommu: iommu-debug: assign iova space for fastmap client" 2017-04-21 09:41:34 -07:00
Linux Build Service Account
377b645155 Merge "drivers: cpuidle: lpm-levels: add lpm_debug to Minidump" 2017-04-21 09:41:33 -07:00
Linux Build Service Account
c571b68a7c Merge "soc: qcom: Add Minidump support" 2017-04-21 09:41:32 -07:00
Rajkumar Manoharan
74e43f3573 cfg80211: increse bss expire time
The background scan completion takes more time when the station is
having heavy uplink traffic. The scan state machine decides to fall
back to home channel on every off-channel visit when there are pending
frames in tx queue. bgscan completion took ~30sec on dual band US
regulatory card.

scan period = (20 active channels * probe timeout) +
              (12 passive channels * passive probe timeout) +
              (32 * timeout on home channel) +
              (32 * flush timeout)

Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Git-commit: f9616e0f88
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/
jberg/mac80211-next.git
CRs-Fixed: 2036907
Change-Id: I8b57fba12f0d42fa7d01243210206d432fbf9757
Signed-off-by: Padma, Santhosh Kumar <skpadma@codeaurora.org>
2017-04-21 17:34:31 +05:30
Raviteja Tamatam
e553370302 msm: mdss: align the size of smmu domain mapping to 128 MB
Change the size of smmu create mapping to have 128 MB
alignnment as kernel upstream code on 32-bit mode
expects 128 MB aligned virtual address.

Change-Id: I5e533f948bbcf4e82ba22b273b1bcad068e4959c
Signed-off-by: Raviteja Tamatam <travitej@codeaurora.org>
2017-04-21 16:41:06 +05:30
Sravan Kumar D.V.N
0afc86cab6 msm: mdss: Separate PP programming to advanced and deferred modes
Deferring all the PP features programming to post pingpong done
in command mode panels causing performance issues in certain
use cases. To fix this, defer only the programming of features
with single buffered registers and program features with double
buffered registers before wait for pingpong.

Change-Id: I6a1e8114b50c558f667bde4db5c0ba57009d6f50
Signed-off-by: Sravan Kumar D.V.N <sravank1@codeaurora.org>
2017-04-21 02:21:25 -07:00
Greg Kroah-Hartman
29fa724a09 This is the 4.4.63 stable release
-----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlj5tRkACgkQONu9yGCS
 aT5zFxAAouq2kxBFxxJIQ3255yy/7B6oBYrhilQZPrETC800PUaIqZtuQZPpaoqb
 3gG0+12ve0CMHK+PidEwsQlMlAHNI1xbzmUHm2UIrLYYCV817DTkEsc7JXGUvYVA
 /YA71GASKmLVi9DnsawRb0ELhTeQHec76LrPlgvyWH/OMEtNcMOv/8oWfTq9bKV2
 HsHC6MOwT2R86ukhYYmcfFHomTnJSpW7KtGXwNC/LhohzIfsKQKGQWb1f1j1aHGC
 u5yQ5Qc9T+DhPMHAEY+xuURz/3ohpUL8aSQXk7pua/bTD0X0klNQcf/BXVJXsaeI
 s4g78q+YdTcPL81rkEW+7yUvAlb3u+FdVr+wjsl/s6ih4iL0EgBsoClqUjGUUoz+
 jvCXHiMP7lHi50eIkppQf/yZSVKSobKn5YYf9AA+y6tQ9R9GguDS/IQSRe2HnHeR
 OymCBXa6BSmQGGyPiMUBiNTix6roJ8Vr4dK9lbsQXZ+YZICXWs1rpMOy5HK9EJWf
 M6YF6l9lHwQ38AN+MhsjUXIyKLp9zCk7syeFaeK6k/IA2kcm7dL/momiZ1QIBnhq
 OHB3iwEPZ5Rr4CVjk5j7Ue22ubdrtpc8IfTYV95N7nv+g3nBwe22k+RDi70NiDwk
 2pnBqhO/vtPRE9Ry3QBS73VEeXgNb9IIVwQ7hi9Rk7KUgmdEOOo=
 =iS0x
 -----END PGP SIGNATURE-----

Merge 4.4.63 into android-4.4

Changes in 4.4.63:
	cgroup, kthread: close race window where new kthreads can be migrated to non-root cgroups
	thp: fix MADV_DONTNEED vs clear soft dirty race
	drm/nouveau/mpeg: mthd returns true on success now
	drm/nouveau/mmu/nv4a: use nv04 mmu rather than the nv44 one
	CIFS: store results of cifs_reopen_file to avoid infinite wait
	Input: xpad - add support for Razer Wildcat gamepad
	perf/x86: Avoid exposing wrong/stale data in intel_pmu_lbr_read_32()
	x86/vdso: Ensure vdso32_enabled gets set to valid values only
	x86/vdso: Plug race between mapping and ELF header setup
	acpi, nfit, libnvdimm: fix interleave set cookie calculation (64-bit comparison)
	iscsi-target: Fix TMR reference leak during session shutdown
	iscsi-target: Drop work-around for legacy GlobalSAN initiator
	scsi: sr: Sanity check returned mode data
	scsi: sd: Consider max_xfer_blocks if opt_xfer_blocks is unusable
	scsi: sd: Fix capacity calculation with 32-bit sector_t
	xen, fbfront: fix connecting to backend
	libnvdimm: fix reconfig_mutex, mmap_sem, and jbd2_handle lockdep splat
	irqchip/irq-imx-gpcv2: Fix spinlock initialization
	ftrace: Fix removing of second function probe
	char: Drop bogus dependency of DEVPORT on !M68K
	char: lack of bool string made CONFIG_DEVPORT always on
	Revert "MIPS: Lantiq: Fix cascaded IRQ setup"
	kvm: fix page struct leak in handle_vmon
	zram: do not use copy_page with non-page aligned address
	powerpc: Disable HFSCR[TM] if TM is not supported
	crypto: ahash - Fix EINPROGRESS notification callback
	ath9k: fix NULL pointer dereference
	dvb-usb-v2: avoid use-after-free
	ext4: fix inode checksum calculation problem if i_extra_size is small
	platform/x86: acer-wmi: setup accelerometer when machine has appropriate notify event
	rtc: tegra: Implement clock handling
	mm: Tighten x86 /dev/mem with zeroing reads
	dvb-usb: don't use stack for firmware load
	dvb-usb-firmware: don't do DMA on stack
	virtio-console: avoid DMA from stack
	pegasus: Use heap buffers for all register access
	rtl8150: Use heap buffers for all register access
	catc: Combine failure cleanup code in catc_probe()
	catc: Use heap buffer for memory size test
	ibmveth: calculate gso_segs for large packets
	SUNRPC: fix refcounting problems with auth_gss messages.
	tty/serial: atmel: RS485 half duplex w/DMA: enable RX after TX is done
	net: ipv6: check route protocol when deleting routes
	sctp: deny peeloff operation on asocs with threads sleeping on it
	MIPS: fix Select HAVE_IRQ_EXIT_ON_IRQ_STACK patch.
	Linux 4.4.63

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-04-21 09:47:01 +02:00
Linux Build Service Account
c30ff10a70 Merge "ARM: dts: msm: Add overlay files for 8998 QRD boards" 2017-04-21 00:37:36 -07:00
Linux Build Service Account
8ab7fc2939 Merge "char: msm_smd_pkt: Add snapshot of SMD packet driver" 2017-04-21 00:37:35 -07:00
Linux Build Service Account
f1a91e13f2 Merge "clk: msm: clock-mmss-8998: Set non_local_children flag for mdp_clk_src" 2017-04-21 00:37:34 -07:00
Linux Build Service Account
c2b5adaf8a Merge "diag: Split data stream for User PDs on LPASS" 2017-04-21 00:37:34 -07:00
Linux Build Service Account
ee129a0667 Merge "ANDROID: ion: Fix uninitialized variable" 2017-04-21 00:37:32 -07:00
Linux Build Service Account
9cf7045fb6 Merge "ANDROID: ion: Protect kref from userspace manipulation" 2017-04-21 00:37:32 -07:00
Linux Build Service Account
d7eb0a4d7f Merge "scsi: ufs: fix issue with scaling up gear" 2017-04-21 00:37:31 -07:00
Linux Build Service Account
a171c21c8a Merge "Perf: arm64: disable irq for hotplug offline" 2017-04-21 00:37:30 -07:00
Greg Kroah-Hartman
81af21fe95 Linux 4.4.63 2017-04-21 09:30:24 +02:00
Greg Kroah-Hartman
d005579766 MIPS: fix Select HAVE_IRQ_EXIT_ON_IRQ_STACK patch.
Commit f017e58da4 which was commit
3cc3434fd6307d06b53b98ce83e76bf9807689b9 upstream, was misapplied to the
4.4 stable kernel.

This patch fixes this and moves the chunk to the proper Kconfig area.

Reported-by: "Maciej W. Rozycki" <macro@linux-mips.org>
Cc: Matt Redfearn <matt.redfearn@imgtec.com>
Cc: Jason A. Donenfeld <jason@zx2c4.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
Marcelo Ricardo Leitner
e2f5fb9207 sctp: deny peeloff operation on asocs with threads sleeping on it
commit dfcb9f4f99f1e9a49e43398a7bfbf56927544af1 upstream.

commit 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf")
attempted to avoid a BUG_ON call when the association being used for a
sendmsg() is blocked waiting for more sndbuf and another thread did a
peeloff operation on such asoc, moving it to another socket.

As Ben Hutchings noticed, then in such case it would return without
locking back the socket and would cause two unlocks in a row.

Further analysis also revealed that it could allow a double free if the
application managed to peeloff the asoc that is created during the
sendmsg call, because then sctp_sendmsg() would try to free the asoc
that was created only for that call.

This patch takes another approach. It will deny the peeloff operation
if there is a thread sleeping on the asoc, so this situation doesn't
exist anymore. This avoids the issues described above and also honors
the syscalls that are already being handled (it can be multiple sendmsg
calls).

Joint work with Xin Long.

Fixes: 2dcab5984841 ("sctp: avoid BUG_ON on sctp_wait_for_sndbuf")
Cc: Alexander Popov <alex.popov@linux.com>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
Mantas M
f00f18ebb3 net: ipv6: check route protocol when deleting routes
commit c2ed1880fd61a998e3ce40254a99a2ad000f1a7d upstream.

The protocol field is checked when deleting IPv4 routes, but ignored for
IPv6, which causes problems with routing daemons accidentally deleting
externally set routes (observed by multiple bird6 users).

This can be verified using `ip -6 route del <prefix> proto something`.

Signed-off-by: Mantas Mikulėnas <grawity@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
Richard Genoud
990a142ee0 tty/serial: atmel: RS485 half duplex w/DMA: enable RX after TX is done
commit b389f173aaa1204d6dc1f299082a162eb0491545 upstream.

When using RS485 in half duplex, RX should be enabled when TX is
finished, and stopped when TX starts.

Before commit 0058f0871efe7b01c6 ("tty/serial: atmel: fix RS485 half
duplex with DMA"), RX was not disabled in atmel_start_tx() if the DMA
was used. So, collisions could happened.

But disabling RX in atmel_start_tx() uncovered another bug:
RX was enabled again in the wrong place (in atmel_tx_dma) instead of
being enabled when TX is finished (in atmel_complete_tx_dma), so the
transmission simply stopped.

This bug was not triggered before commit 0058f0871efe7b01c6
("tty/serial: atmel: fix RS485 half duplex with DMA") because RX was
never disabled before.

Moving atmel_start_rx() in atmel_complete_tx_dma() corrects the problem.

Reported-by: Gil Weber <webergil@gmail.com>
Fixes: 0058f0871efe7b01c6
Tested-by: Gil Weber <webergil@gmail.com>
Signed-off-by: Richard Genoud <richard.genoud@gmail.com>
Acked-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Tested-by: Bryan Evenson <bevenson@melinkcorp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
NeilBrown
8dc821b9f6 SUNRPC: fix refcounting problems with auth_gss messages.
commit 1cded9d2974fe4fe339fc0ccd6638b80d465ab2c upstream.

There are two problems with refcounting of auth_gss messages.

First, the reference on the pipe->pipe list (taken by a call
to rpc_queue_upcall()) is not counted.  It seems to be
assumed that a message in pipe->pipe will always also be in
pipe->in_downcall, where it is correctly reference counted.

However there is no guaranty of this.  I have a report of a
NULL dereferences in rpc_pipe_read() which suggests a msg
that has been freed is still on the pipe->pipe list.

One way I imagine this might happen is:
- message is queued for uid=U and auth->service=S1
- rpc.gssd reads this message and starts processing.
  This removes the message from pipe->pipe
- message is queued for uid=U and auth->service=S2
- rpc.gssd replies to the first message. gss_pipe_downcall()
  calls __gss_find_upcall(pipe, U, NULL) and it finds the
  *second* message, as new messages are placed at the head
  of ->in_downcall, and the service type is not checked.
- This second message is removed from ->in_downcall and freed
  by gss_release_msg() (even though it is still on pipe->pipe)
- rpc.gssd tries to read another message, and dereferences a pointer
  to this message that has just been freed.

I fix this by incrementing the reference count before calling
rpc_queue_upcall(), and decrementing it if that fails, or normally in
gss_pipe_destroy_msg().

It seems strange that the reply doesn't target the message more
precisely, but I don't know all the details.  In any case, I think the
reference counting irregularity became a measureable bug when the
extra arg was added to __gss_find_upcall(), hence the Fixes: line
below.

The second problem is that if rpc_queue_upcall() fails, the new
message is not freed. gss_alloc_msg() set the ->count to 1,
gss_add_msg() increments this to 2, gss_unhash_msg() decrements to 1,
then the pointer is discarded so the memory never gets freed.

Fixes: 9130b8dbc6ac ("SUNRPC: allow for upcalls for same uid but different gss service")
Link: https://bugzilla.opensuse.org/show_bug.cgi?id=1011250
Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
Thomas Falcon
403a728d1a ibmveth: calculate gso_segs for large packets
commit 94acf164dc8f1184e8d0737be7125134c2701dbe upstream.

Include calculations to compute the number of segments
that comprise an aggregated large packet.

Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
Reviewed-by: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Reviewed-by: Jonathan Maxwell <jmaxwell37@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sumit Semwal <sumit.semwal@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
Ben Hutchings
65596042c3 catc: Use heap buffer for memory size test
commit 2d6a0e9de03ee658a9adc3bfb2f0ca55dff1e478 upstream.

Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Brad Spengler <spender@grsecurity.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
Ben Hutchings
40531b26ba catc: Combine failure cleanup code in catc_probe()
commit d41149145f98fe26dcd0bfd1d6cc095e6e041418 upstream.

Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:08 +02:00
Ben Hutchings
a90604be51 rtl8150: Use heap buffers for all register access
commit 7926aff5c57b577ab0f43364ff0c59d968f6a414 upstream.

Allocating USB buffers on the stack is not portable, and no longer
works on x86_64 (with VMAP_STACK enabled as per default).

Fixes: 1da177e4c3 ("Linux-2.6.12-rc2")
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Brad Spengler <spender@grsecurity.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-04-21 09:30:07 +02:00