linux_dsm_epyc7002/drivers
Yoshihiro Shimoda 15e4292a2d usb: renesas_usbhs: protect the CFIFOSEL setting in usbhsg_ep_enable()
This patch fixes an issue that the CFIFOSEL register value is possible
to be changed by usbhsg_ep_enable() wrongly. And then, a data transfer
using CFIFO may not work correctly.

For example:
 # modprobe g_multi file=usb-storage.bin
 # ifconfig usb0 192.168.1.1 up
 (During the USB host is sending file to the mass storage)
 # ifconfig usb0 down

In this case, since the u_ether.c may call usb_ep_enable() in
eth_stop(), if the renesas_usbhs driver is also using CFIFO for
mass storage, the mass storage may not work correctly.

So, this patch adds usbhs_lock() and usbhs_unlock() calling in
usbhsg_ep_enable() to protect CFIFOSEL register. This is because:
 - CFIFOSEL.CURPIPE = 0 is also needed for the pipe configuration
 - The CFIFOSEL (fifo->sel) is already protected by usbhs_lock()

Fixes: 97664a207b ("usb: renesas_usbhs: shrink spin lock area")
Cc: <stable@vger.kernel.org> # v3.1+
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
2016-06-29 11:14:44 +03:00
..
accessibility
acpi Merge branch 'acpica-fixes' 2016-06-18 01:55:55 +02:00
amba
android
ata
atm
auxdisplay
base Driver core fixes for 4.7-rc4 2016-06-18 06:04:01 -10:00
bcma
block
bluetooth
bus
cdrom
char ipmi: Remove smi_msg from waiting_rcv_msgs list before handle_one_recv_msg() 2016-06-13 08:56:28 -05:00
clk
clocksource
connector
cpufreq cpufreq: intel_pstate: Adjust _PSS[0] freqeuency if needed 2016-06-15 01:56:47 +02:00
cpuidle
crypto
dax
dca
devfreq
dio
dma
dma-buf
edac
eisa
extcon extcon: palmas: Fix boot up state of VBUS when using GPIO detection 2016-06-15 17:17:22 +09:00
firewire
firmware
fmc
fpga
gpio gpio: Allow PC/104 devices on X86_64 2016-06-17 20:21:12 -07:00
gpu Merge tag 'drm-fixes-for-v4.7-rc4' of git://people.freedesktop.org/~airlied/linux 2016-06-15 19:54:52 -10:00
hid
hsi
hv
hwmon
hwspinlock
hwtracing coresight: Handle build path error 2016-06-16 00:13:06 -07:00
i2c
ide
idle
iio Staging fixes for 4.7-rc4 2016-06-18 06:05:28 -10:00
infiniband
input
iommu iommu/vt-d: Enable QI on all IOMMUs before setting root entry 2016-06-17 11:29:48 +02:00
ipack
irqchip
isdn
leds
lguest
lightnvm
macintosh
mailbox
mcb mcb: Acquire reference to carrier module in core 2016-06-13 18:49:30 -07:00
md
media Update my main e-mails at the Kernel tree 2016-06-15 15:35:37 -10:00
memory memory: omap-gpmc: Fix omap gpmc EXTRADELAY timing 2016-06-16 11:43:48 +03:00
memstick
message
mfd
misc mei: don't use wake_up_interruptible for wr_ctrl 2016-06-10 22:14:24 -07:00
mmc
mtd ubi: Don't bypass ->getattr() 2016-06-14 10:51:42 +02:00
net
nfc
ntb
nubus
nvdimm
nvme
nvmem
of
oprofile
parisc
parport
pci
pcmcia
perf arm: pmu: Fix non-devicetree probing 2016-06-15 09:51:35 +01:00
phy usb: gadget: move gadget API functions to udc-core 2016-06-21 10:38:34 +03:00
pinctrl
platform
pnp
power usb: gadget: move gadget API functions to udc-core 2016-06-21 10:38:34 +03:00
powercap
pps
ps3
ptp
pwm pwm: atmel-hlcdc: Fix default PWM polarity 2016-06-14 10:51:45 +02:00
rapidio
ras
regulator Merge remote-tracking branches 'regulator/fix/qcom-smd' and 'regulator/fix/tps51632' into regulator-linus 2016-06-13 16:51:57 +01:00
remoteproc
reset
rpmsg
rtc
s390
sbus
scsi
sfi
sh
sn
soc
spi
spmi
ssb
staging Revert "Staging: rtl8188eu: rtw_efuse: Use sizeof type *pointer instead of sizeof type." 2016-06-17 11:21:45 -07:00
target
tc
thermal Merge branch 'for-rc' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux 2016-06-12 06:30:39 -07:00
thunderbolt
tty
uio
usb usb: renesas_usbhs: protect the CFIFOSEL setting in usbhsg_ep_enable() 2016-06-29 11:14:44 +03:00
uwb
vfio
vhost
video
virt
virtio
vlynq
vme
w1
watchdog watchdog: ebc-c384_wdt: Allow build for X86_64 2016-06-17 20:21:12 -07:00
xen
zorro
Kconfig
Makefile