platform/kernel/linux-amlogic.git
7 years agoaudio: A113 revA and revB compatible function
Peipeng Zhao [Thu, 13 Jul 2017 07:02:41 +0000 (15:02 +0800)]
audio: A113 revA and revB compatible function

PD#147527: A113 chip revA and revB is compatible for audio

Change-Id: I4a10551900f291d4fa92aeff05d7985e876192ab
Signed-off-by: Peipeng Zhao <peipeng.zhao@amlogic.com>
7 years agodts: gxl: add p231 dts.
Lianghu Su [Mon, 3 Jul 2017 12:52:41 +0000 (20:52 +0800)]
dts: gxl: add p231 dts.

PD#146897: add p231 dts.

Compared with p212, p231 has no mtd_nand device.

Change-Id: Ia398d4e9e630998ccfae4ca1aa12a24538bf73c6
Signed-off-by: Lianghu Su <lianghu.su@amlogic.com>
7 years agopcie: fix pcie reset pin request.
Yue Wang [Wed, 12 Jul 2017 10:17:57 +0000 (18:17 +0800)]
pcie: fix pcie reset pin request.

PD#147492: pcie: fix pcie reset pin request.

Change-Id: I12206e25d61a728f8a10da2315faf271b9d4d09e
Signed-off-by: Yue Wang <yue.wang@amlogic.com>
7 years agodefconfig: meson64: sync savedefconfig
jianxin.pan [Thu, 13 Jul 2017 03:48:38 +0000 (11:48 +0800)]
defconfig: meson64: sync savedefconfig

PD#146811: generate meson64_defconfig with:
make ARCH=arm64 meson64_defconfig
make ARCH=arm64 savedefconfig
cp defconfig ./arch/arm64/configs/meson64_defconfig

Change-Id: I936db023d4812ae6d9b563e56d19e2c3023c8989
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
7 years agoUSB: dwc3 controller not support lpm for some usb disk has lpm feature
Qi Duan [Tue, 11 Jul 2017 07:39:28 +0000 (15:39 +0800)]
USB: dwc3 controller not support lpm for some usb disk has lpm feature

PD#147335: USB: dwc3 controller not support lpm for some usb disk whitch has lpm feature [1/1]

Change-Id: I1cdd12d39fcc59ca50275f4c4e1f1cd674d47051
Signed-off-by: Qi Duan <qi.duan@amlogic.com>
7 years agoscript: update merge_pre_check.sh
jianxin.pan [Fri, 30 Jun 2017 13:04:03 +0000 (21:04 +0800)]
script: update merge_pre_check.sh

PD#138174: update merge_pre_check script

Change-Id: I3340906ff4fc3a61ba720fb4dabecd3f623dfcae
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
7 years agoextcon: wrap modifies with amlogic marco
jianxin.pan [Tue, 11 Jul 2017 11:14:11 +0000 (19:14 +0800)]
extcon: wrap modifies with amlogic marco

PD#138714: wrap changs with CONFIG_AMLOGIC_MODIFY

Change-Id: I7ffff7940f13012a1d898635eefe75feb8c17268
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
7 years agoextcon: enable name set for extcon
Pan Jianxin [Tue, 27 Jun 2017 09:07:08 +0000 (17:07 +0800)]
extcon: enable name set for extcon

PD#138714: enable name set for extcon
Without this change, name for extcon is always extcon0, extcon1, and
it can't be set by driver.

set extcon name before extcon_dev_register:
edev->name = "xxx";
dev_set_name(&edev->dev, "xxxxxx");

Change-Id: I22efce87f8fb50f1faf71d254cd03fe292ddb035
Signed-off-by: Pan Jianxin <jianxin.pan@amlogic.com>
7 years agoaudio: audio info for audio license query
Xing Wang [Mon, 10 Jul 2017 12:26:02 +0000 (20:26 +0800)]
audio: audio info for audio license query

PD#147297: audio: audio license query driver

Change-Id: I9a9db1c33c372bc58130a1c41addfd80303a5625
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
Signed-off-by: Matthew Shyu <matthew.shyu@amlogic.com>
7 years agoosd: fix osd flicker issue on AXG
Pengcheng Chen [Mon, 3 Jul 2017 07:26:39 +0000 (15:26 +0800)]
osd: fix osd flicker issue on AXG

PD#146558: osd: fix osd flicker issue on AXG

1. osd: move reg update to vsync interrupt
2. osd: add osd hold line size to 24
3. osd: add read/wirte reg function
4. osd: add osd fps stat function

Change-Id: Iaa382bb8deba49ecb94732691a3608cec9fb9679
Signed-off-by: Pengcheng Chen <pengcheng.chen@amlogic.com>
7 years agoscript: update merge_pre_check.pl
Jiamin Ma [Mon, 10 Jul 2017 11:59:36 +0000 (19:59 +0800)]
script: update merge_pre_check.pl

PD#138714: update merge_pre_check.pl to compatible with checkpatch.pl

Change-Id: Ic3aa45a95d9b1c6c2a923a93b87d4a1590a9c066
Signed-off-by: Jiamin Ma <jiamin.ma@amlogic.com>
7 years agonand: add mxic 128M(MX30LF1G18AC)
Yueguie He [Mon, 10 Jul 2017 10:25:58 +0000 (18:25 +0800)]
nand: add mxic 128M(MX30LF1G18AC)

PD#147222: mtd:nand : add mxic 128M(MX30LF1G18AC)

Change-Id: I7a3f72245e3f1d80e902e22fb841053fc59332a3
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
7 years agohdmitx: update Kconfig of esm
Zongdong Jiao [Mon, 10 Jul 2017 10:19:41 +0000 (18:19 +0800)]
hdmitx: update Kconfig of esm

PD#146107: using depends on at Kconfig file

Change-Id: I0ed025b43c16e02323cea980744d42feb7cc820a
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
7 years agohdmitx: sync with 3.14 driver
Zongdong Jiao [Thu, 22 Jun 2017 12:51:23 +0000 (20:51 +0800)]
hdmitx: sync with 3.14 driver

PD#146107: sync with the lastest 3.14 kernel driver

Change-Id: Ia87fdd4fb153e76fa9a2637a424527d03a736a9f
Signed-off-by: Zongdong Jiao <zongdong.jiao@amlogic.com>
Signed-off-by: Kaifu Hu <kaifu.hu@amlogic.com>
7 years agopinctrl: update the number of pins in EE domain
xingyu.chen [Mon, 10 Jul 2017 08:35:21 +0000 (16:35 +0800)]
pinctrl: update the number of pins in EE domain

PD#147162: pinctrl: update the number of pins in EE domain

Change-Id: I1140bfea4f812fd66d42efcd59ce884022e932f9
Signed-off-by: xingyu.chen <xingyu.chen@amlogic.com>
7 years agochipid: add chipid to cpuinfo
jianxin.pan [Wed, 5 Jul 2017 12:04:42 +0000 (20:04 +0800)]
chipid: add chipid to cpuinfo

PD#138714: add chipid for cpuinfo

Change-Id: I95da78a07d0806638768984542b3f9886571efd7
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
7 years agowatchdog: meson_wdt: fix register and callback of reboot notfiy
Bo Yang [Fri, 7 Jul 2017 10:24:50 +0000 (18:24 +0800)]
watchdog: meson_wdt: fix register and callback of reboot notfiy

PD#147089: watchdog: meson_wdt: fix register and callback of reboot notify

The function register_reboot_notifier() use the wrong notifier_block
variable. So the container_of in the callback can't get the right pointer
of the struct.

The watchdog is disable in case of system down. If the kernel panic, the
reboot notify should ignore that.

Change-Id: I3fd21590808f4b380ddd54883db576e5c13c04a1
Signed-off-by: Bo Yang <bo.yang@amlogic.com>
7 years agodts: axg: add label for the ee watchdog
Bo Yang [Thu, 6 Jul 2017 05:30:16 +0000 (13:30 +0800)]
dts: axg: add label for the ee watchdog

PD#147071: dtsi: add label for the ee watchdog

So the node can be referrenced for changing.

Change-Id: I5198949ce550b7e8260cdfca3ae6164dcf5ad9c4
Signed-off-by: Bo Yang <bo.yang@amlogic.com>
7 years agodts: add platform id
Yueguie He [Thu, 6 Jul 2017 02:31:11 +0000 (10:31 +0800)]
dts: add platform id

PD#147047: add s400 & s420 platform id

Change-Id: Id66685655b0708df87e02e23139f5592224801d3
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
7 years agopcie: support broadcom wifi ap6356p.
Yue Wang [Tue, 4 Jul 2017 08:12:13 +0000 (16:12 +0800)]
pcie: support broadcom wifi ap6356p.

PD#146975: pcie: support broadcom wifi ap6356p.

Change-Id: Iec6877c0b34dbc213711071427ccca786396b12b
Signed-off-by: Yue Wang <yue.wang@amlogic.com>
7 years agomtd: nand: fix rsv info save
Yonghui Yu [Thu, 22 Jun 2017 08:36:04 +0000 (16:36 +0800)]
mtd: nand: fix rsv info save

PD#146160: mtd: nand: fix rsv info save operations
1. fix pages calculations
2. update valid flag after 1st write.

Change-Id: I498ff0b6e11939813d69141d8d18be30d15d8b1c
Signed-off-by: Yonghui Yu <yonghui.yu@amlogic.com>
7 years agoMerge branch 'android-4.9' into amlogic-4.9-dev
Victor Wan [Tue, 4 Jul 2017 02:50:35 +0000 (10:50 +0800)]
Merge branch 'android-4.9' into amlogic-4.9-dev

7 years agoddr window: add ddr window driver
Yueguie He [Mon, 3 Jul 2017 05:50:09 +0000 (13:50 +0800)]
ddr window: add ddr window driver

PD#146791: add ddr window driver

Change-Id: Iad474cc1b82494748136e82734c93057954a4313
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
7 years agoscript: check defconfig and commit message before merge
jianxin.pan [Fri, 30 Jun 2017 11:39:17 +0000 (19:39 +0800)]
script: check defconfig and commit message before merge

PD#138714: check patch before merge
1) meson32/64_defconfig should generated from savedefconfig
2) commit message style

Change-Id: Ia7330533249f2a93e541f10981ec4caae9978879
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
7 years agodts: fix S400 & S420 dts unifykey number error
Peipeng Zhao [Fri, 30 Jun 2017 10:29:58 +0000 (18:29 +0800)]
dts: fix S400 & S420 dts unifykey number error

PD#146825: fix S400 & S420 dts unifykey number error

Change-Id: Iaa5382875c3e2a21e2cd038f2a92ca6f8e676d1f
Signed-off-by: Peipeng Zhao <peipeng.zhao@amlogic.com>
7 years agodefconfig: sync defconfig with savedefconfig
jianxin.pan [Fri, 30 Jun 2017 06:07:05 +0000 (14:07 +0800)]
defconfig: sync defconfig with savedefconfig

PD#138714: sync meson_defconfig with savedefconfig

Change-Id: I3c464d1f56268530f254d64438df2a20817e8d7d
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
7 years agonand id: add nand id
Yueguie He [Fri, 30 Jun 2017 06:01:18 +0000 (14:01 +0800)]
nand id: add nand id

PD#146794: add nand id
          1. add nand id: W29N01HV

Change-Id: I4d3582b18df42d4b7f5f161a9c1a9504f9fd1da8
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
7 years agoaudio: fix audio tdm mic noise and digital mic noise
Peipeng Zhao [Thu, 29 Jun 2017 10:38:27 +0000 (18:38 +0800)]
audio: fix audio tdm mic noise and digital mic noise

PD#146748: audio capture noise on analog and digital mic

Change-Id: Id9820999399d3d933fc055fa45188fc702bba211
Signed-off-by: Peipeng Zhao <peipeng.zhao@amlogic.com>
7 years agoUART: setting clk81 gate and clock source by dts
Qi Duan [Thu, 29 Jun 2017 06:55:15 +0000 (14:55 +0800)]
UART: setting clk81 gate and clock source by dts

PD#146725: UART: setting clk81 gate and clock source by dts [1/1]

Change-Id: I5d1bacb9d59db250372100fc93263b1f0412027f
Signed-off-by: Qi Duan <qi.duan@amlogic.com>
7 years agoirblaster: add irblaster config & dts
Yueguie He [Thu, 29 Jun 2017 06:27:27 +0000 (14:27 +0800)]
irblaster: add irblaster config & dts

PD#146700: add irblaster config & dts
1. add irblaster config
2. add irblaster dts

Change-Id: I2c82b43c904041a89c3eb1521970c3c8ac37d3e1
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
7 years agoscript: remove error for change-id when checkpatch
jianxin.pan [Thu, 29 Jun 2017 05:20:06 +0000 (13:20 +0800)]
script: remove error for change-id when checkpatch

PD#138714: remove the following error when checkpatch
Remove Gerrit Change-Id's before submitting upstream

Change-Id: I7276a44cef37d7cc4906be996d6eb9a19ae1102a
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
7 years agodts: axg: add unifykey
Yueguie He [Thu, 29 Jun 2017 05:43:47 +0000 (13:43 +0800)]
dts: axg: add unifykey

PD#146698: add unifykey
1. add unifykey,usid,mac,secure_boot_set,mac_bt,mac_wifi,deviceid.
2. enable efuse.

Change-Id: Ifcc902aae8d019235ef506fb6ba864feb29f3a3b
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
7 years agoadc_keypad: update interface to access adc and add sysfs interface
xingyu.chen [Wed, 28 Jun 2017 06:17:12 +0000 (14:17 +0800)]
adc_keypad: update interface to access adc and add sysfs interface

PD#146614: adc_keypad: update interface to access adc and add sysfs interface

1.use sysfs interface to set dynamic key
inquire key map:
cat /sys/devices/platform/adc_keypad/table

set key:
echo [name]:[code]:[channel]:[value]:[tolerance] >
/sys/devices/platform/adc_keypad/table

2. use the consumer interface of the IIO to access sar adc

Change-Id: I0357e84720340b0fee4baa882f41f0aa7f36a9a1
Signed-off-by: xingyu.chen <xingyu.chen@amlogic.com>
7 years agoaudio: fix tlv320adc3101 support S24_LE and 16k
Alex Deng [Wed, 28 Jun 2017 11:06:25 +0000 (19:06 +0800)]
audio: fix tlv320adc3101 support S24_LE and 16k

PD#146653: fix tlv320adc3101 support S24_LE and 16k

Change-Id: I54daeb69125f83e53164c03b39cfb5c8af742e95
Signed-off-by: Alex Deng <alex.deng@amlogic.com>
7 years agoaudio: tdm fmt set
Xing Wang [Wed, 28 Jun 2017 11:10:02 +0000 (19:10 +0800)]
audio: tdm fmt set

PD#146652: audio: set tdm fmt when hw_param

Change-Id: I5383554d6db58a5dd465c8c65fb974c92b1bac81
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
7 years agodts: axg: dtsi update for idle.
Yan Wang [Wed, 28 Jun 2017 07:06:47 +0000 (15:06 +0800)]
dts: axg: dtsi update for idle.

 PD#146619: AXG fail or hard lock up when idle enable.

Change-Id: I688e134f22a1fed67aae98a7a99242c54db5aab7
Signed-off-by: Yan Wang <yan.wang@amlogic.com>
7 years agoaudio: clock only enable in runtime for power consumption
Xing Wang [Tue, 27 Jun 2017 15:22:01 +0000 (23:22 +0800)]
audio: clock only enable in runtime for power consumption

PD#146592: audio: clock only enable in runtime for power consumption

1. clocks for tdm in & out/spdif in & out/pdm in, only enable when runtime
2. remove unused codes

Change-Id: Ic75ab4557b9e1c26fa032a5b14a7a39ae53f6a06
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
7 years agoaudio: add new audio features
Shuai Li [Wed, 7 Jun 2017 03:41:42 +0000 (20:41 -0700)]
audio: add new audio features

PD#145715: new audio features:
1. mute gpio
2. tas575x driver
3. multi-codec prefix name
4. tlv320adc3101 can revert bclk
5. set clkmsr to check mclk for AXG tdm

Change-Id: Ibd3d9ed8086715439c4bebeb574b998c1ffd1e45
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
7 years agomtd: nand: add slc nand support.
Yonghui Yu [Fri, 23 Jun 2017 08:40:59 +0000 (16:40 +0800)]
mtd: nand: add slc nand support.

PD#142177: mtd: nand: add slc ids.

1. Toshiba 128MB TC58BVG1S3HTA00
2. Spansion 256MB S34ML02G1-MLO2G100BH1OO
3. Spansino 256MB S34ML02G1-MLO2G200BH1OO
4. Mxic 256MB MX30LF2G18AC
5. MXic 512MB MX30LF4G18AC
6. Samsung 512MB K9F4G08U0F
7. Toshiba 512MB TH58NVG2S3HTA

Change-Id: I765cd11cb9c7dd00e5a269e0dc526df536252ff8
Signed-off-by: Yonghui Yu <yonghui.yu@amlogic.com>
7 years agoclk: axg: add pll disable op [1/1]
Qiufang Dai [Thu, 22 Jun 2017 13:04:50 +0000 (21:04 +0800)]
clk: axg: add pll disable op [1/1]

PD#146411: add disable op for pcie_gp0/hifi pll

1. add clks NULL pointer check.
2. add pll disable op.

Change-Id: Ib32e45e582b45f43b057e1188d83037628c84587
Signed-off-by: Qiufang Dai <qiufang.dai@amlogic.com>
7 years agosaradc: refactor the driver based on the iio sub-system
Xingyu Chen [Tue, 14 Mar 2017 03:06:43 +0000 (11:06 +0800)]
saradc: refactor the driver based on the iio sub-system

PD#146222: saradc: refactor the driver based on the iio sub-system

the sar adc driver has been moved from directory input/saradc
into directory iio/adc, and is refactored base on the standard
iio sub-system.

the iio sub-system provide two ways to access sar adc resources:
1. standard api for consumer driver
it can be found at the file "include/linux/iio/consumer.h".

2. sysfs interface for user space(X: 0-7)
  - obtain 10-bit sample value:
  cat sys/bus/iio/devices/iio:device0/in_voltage[X]_input

  - obtain raw sample value(10-bit or 12-bit):
  cat sys/bus/iio/devices/iio:device0/in_voltage[X]_raw

  - obtain mean raw sample value:
  cat sys/bus/iio/devices/iio:device0/in_voltage[X]_mean_raw

test pass on the gxl skt, axg skt, m200.

Change-Id: I6c8877c782c51a01993557cabc0d43f212a8e524
Signed-off-by: xingyu.chen <xingyu.chen@amlogic.com>
7 years agousb: fix adb reboot panic.
Yue Wang [Mon, 26 Jun 2017 10:30:44 +0000 (18:30 +0800)]
usb: fix adb reboot panic.

PD#146539: usb: fix adb reboot panic.

Avoid kernel panic caused by race condition. For example,
1. In the ffs_epfile_io function, data buffer is allocated
for non-halt requests and the address of this buffer is
writed to usb controller registers.
2. After adb process be killed, data buffer is freed and
this memory is allocated for the other. But the address
is hold by the controller.
3. Adbd in PC is running. So, the controller receive the
data and write to this memory.
4. The value of this memory is modified by the controller.
This could cause the kernel panic.

To avoid this, during FunctionFS mount, we allocated the
data buffer for requests. And the memory resources has
been released in kill_sb.

Change-Id: I494988e48bb40a21d57adcf38d41c126f9b71978
Signed-off-by: Yue Wang <yue.wang@amlogic.com>
7 years agoemmc: refixed error reading dtb character device
Long Yu [Tue, 20 Jun 2017 07:52:54 +0000 (15:52 +0800)]
emmc: refixed error reading dtb character device

PD#146144: emmc: refixed error reading dtb character device

1. corrected the boot0 and boot1 partition property

2. refixed error reading dtb character device

Change-Id: Icebdf35cbd7e779573a16ca0230015c907135d52
Signed-off-by: Long Yu <long.yu@amlogic.com>
7 years agoge2d: add ge2d driver for axg bringup
Pengcheng Chen [Tue, 6 Jun 2017 05:13:19 +0000 (13:13 +0800)]
ge2d: add ge2d driver for axg bringup

PD#146096: ge2d: add ge2d driver for axg bringup

Change-Id: Iac19fca564ebb564372445c6011143968f2c9739
Signed-off-by: Pengcheng Chen <pengcheng.chen@amlogic.com>
7 years agoMakefile: fix generation dependency for utsrelease.h
Yixun Lan [Mon, 26 Jun 2017 07:08:24 +0000 (15:08 +0800)]
Makefile: fix generation dependency for utsrelease.h

PD#144946: Makefile: fix generation dependency for utsrelease.h

we need to explicitly generate kernel.release_full first, before
creating utsrelease.h

Change-Id: I9e25d2511026dba8a5d3135468a53340ee3a59de
Signed-off-by: Yixun Lan <yixun.lan@amlogic.com>
7 years agoclk: add saradc clk for gxl
Yun Cai [Fri, 23 Jun 2017 09:49:43 +0000 (17:49 +0800)]
clk: add saradc clk for gxl

PD#146222: add saradc clk for gxl

Change-Id: I5c82dfc4bc44908c10d96056b0d7a0cf3a64c46e
Signed-off-by: Yun Cai <yun.cai@amlogic.com>
7 years agoPD#145804: vdin: optimize vdin mem & clk control
Dezhi Kong [Mon, 12 Jun 2017 08:43:36 +0000 (16:43 +0800)]
PD#145804: vdin: optimize vdin mem & clk control

Change-Id: I08c96702a1c5716393907f311be2f9b9f6b5c8cd
Signed-off-by: Dezhi Kong <dezhi.kong@amlogic.com>
7 years agodts: axg: add D604 mic board led driver
Liang Zhao [Fri, 26 May 2017 12:01:26 +0000 (20:01 +0800)]
dts: axg: add D604 mic board led driver

PD#142470: add D604 mic board led driver

Change-Id: I81dd8ac3f46e0b0cbec6409328489a72d11c54ac
Signed-off-by: Liang Zhao <liang.zhao@amlogic.com>
7 years agoMakefile: generate kernel_full in seperate command
Yixun Lan [Fri, 23 Jun 2017 01:13:51 +0000 (09:13 +0800)]
Makefile: generate kernel_full in seperate command

PD#144946: Makefile: generate kernel_full in seperate command

in certain cases/system, echo command will refuse to interpret backslash
without the '-e' option, so it will end up with one line
"4.9.11\n4.9.11-1234-g1234"

this patch will generate KERNELRELEASE & KERNELRELEASE_FULL in seperate file

Change-Id: I51699f193e893f9ea566251d4440edecf3de7ad8
Signed-off-by: Yixun Lan <yixun.lan@amlogic.com>
7 years agoclk: update for pcie range setting
Yun Cai [Wed, 21 Jun 2017 07:33:01 +0000 (15:33 +0800)]
clk: update for pcie range setting

PD#146333: update for pcie range setting

Change-Id: Ic105ec91bd480ab0d4b980eda90ccbcd1d7baa2c
Signed-off-by: Yun Cai <yun.cai@amlogic.com>
7 years agodts: osd: add cma heap for ion
binqi.zhang [Wed, 21 Jun 2017 11:05:11 +0000 (19:05 +0800)]
dts: osd: add cma heap for ion

PD#146107: osd: add cma heap for ion on Android 8.0

Change-Id: I8ebb0c9068a93b9e1bae114a6d5231de5a2ee78f
Signed-off-by: binqi.zhang <binqi.zhang@amlogic.com>
7 years agopwm: revert pwm e and f order
Jian Hu [Wed, 21 Jun 2017 12:39:30 +0000 (20:39 +0800)]
pwm: revert pwm e and f order

PD#146170: pwm: revert pwm e and f order

1.please ask me to get a patch when you are using pwm on axg.
2.new pwm driver is rebuilding.
3.add pwm e and f for axg,actually the hardware not support.

Change-Id: I3222380b700fbe9668c3d2da1dc8d878f22b30aa
Signed-off-by: Jian Hu <jian.hu@amlogic.com>
7 years agodts: p212: add vendor & oem partition
Xindong Xu [Thu, 1 Jun 2017 02:44:48 +0000 (10:44 +0800)]
dts: p212: add vendor & oem partition

PD#145255: dts: p212: add vendor & oem partition

Change-Id: I96312e567ef4f5b28740607e091283c70a80578f
Signed-off-by: Xindong Xu <xindong.xu@amlogic.com>
7 years agoosd: add cma heap for ion
binqi.zhang [Fri, 16 Jun 2017 06:38:58 +0000 (14:38 +0800)]
osd: add cma heap for ion

PD#146107: osd: add cma heap for ion on Android 8.0

Change-Id: Idf4371fd0dceecc883fd8402a656ed7724be1efd
Signed-off-by: binqi.zhang <binqi.zhang@amlogic.com>
7 years agoANDROID: sdcardfs: remove dead function open_flags_to_access_mode()
Greg Hackmann [Tue, 16 May 2017 23:48:49 +0000 (16:48 -0700)]
ANDROID: sdcardfs: remove dead function open_flags_to_access_mode()

smatch warns about the suspicious formatting in the last line of
open_flags_to_access_mode().  It turns out the only caller was deleted
over a year ago by "ANDROID: sdcardfs: Bring up to date with Android M
permissions:", so we can "fix" the function's formatting by deleting it.

Change-Id: Id85946f3eb01722eef35b1815f405a6fda3aa4ff
Signed-off-by: Greg Hackmann <ghackmann@google.com>
7 years agopwm: fix several errors
Jian Hu [Fri, 16 Jun 2017 08:54:56 +0000 (16:54 +0800)]
pwm: fix several errors

PD#144476: pwm: fix pwm driver errors

1.change pwm e and f order
2.fix several errors

you can request like this:

PWM A 0
PWM B 1
PWM C 2
PWM D 3
PWM AO A 4
PWM AO B 5
PWM AO C 6
PWM AO D 7

Change-Id: Ic1ca7d1f0450db748569447140feab9b9d0c5c34
Signed-off-by: Jian Hu <jian.hu@amlogic.com>
7 years agoirblaster: add code and dts config for axg
Zan Peng [Mon, 19 Jun 2017 08:31:09 +0000 (16:31 +0800)]
irblaster: add code and dts config for axg

PD#146157: irblaster : add code and dts config for axg
1. default dts config of irblater is disabled

Change-Id: I7cc4eece765d28dcac70e222bd2a36df2ba58183
Signed-off-by: Zan Peng <zan.peng@amlogic.com>
7 years agoMerge "i2c: add auto test i2c master and slave on axg skt." into amlogic-4.9-dev
Jianxin Pan [Tue, 20 Jun 2017 07:32:33 +0000 (00:32 -0700)]
Merge "i2c: add auto test i2c master and slave on axg skt." into amlogic-4.9-dev

7 years agoi2c: add auto test i2c master and slave on axg skt.
Xuhua Zhang [Sat, 17 Jun 2017 11:38:28 +0000 (19:38 +0800)]
i2c: add auto test i2c master and slave on axg skt.

PD#142470: add i2c auto test on axg.

1. if uboot parm(i2c_auto_test) is "open",
   open the i2c auto test function.
2. before the test,we should connect i2c slave and master.

Change-Id: Ia37e080dc7995d31e46c9122b389be1ed21acc63
Signed-off-by: Xuhua Zhang <xuhua.zhang@amlogic.com>
7 years agoamlvideo2: fix screen capture funciton
Guosong Zhou [Mon, 12 Jun 2017 11:09:49 +0000 (19:09 +0800)]
amlvideo2: fix screen capture funciton

PD#145804: fix screen capture function

Change-Id: Icb857a889b53d74cfc85072cc88464fb46d283b3
Signed-off-by: Guosong Zhou <guosong.zhou@amlogic.com>
7 years agoclk: add ao clk for axg
Yun Cai [Thu, 18 May 2017 07:01:03 +0000 (15:01 +0800)]
clk: add ao clk for axg

PD#142470: add ao clk saradc for axg

Change-Id: Icadbbf6e631a6158daade2feb4bfae31bed3c471
Signed-off-by: Yun Cai <yun.cai@amlogic.com>
7 years agoANDROID: android-base.cfg: split out arm64-specific configs
Steve Muckle [Tue, 13 Jun 2017 16:23:25 +0000 (09:23 -0700)]
ANDROID: android-base.cfg: split out arm64-specific configs

These config options are specific to arm64 so should not be universally
required.

Bug: 62523096
Change-Id: Ic5f35db71d73919f2958120f45dd717f5d05f4c5
Signed-off-by: Steve Muckle <smuckle@google.com>
7 years agocfg80211: wifi: force to skip cfg80211_leave_all
Lianghu Su [Thu, 15 Jun 2017 07:01:57 +0000 (15:01 +0800)]
cfg80211: wifi: force to skip cfg80211_leave_all

PD#145741: wifi: bcm: fix unable to enter deep suspend mode issue

for the wowlan (wake on wireless lan) function under Linux platfrom,
we have problem to configure it via wpa_supplicant as we do it at Android
platform. so here when it enter into suspend mode, we try to skip calling
cfg80211_leave_all() function at the wire core path.

since this modify the wifi core code, it will also affect other
wifi drivers (not only bcm wifi).

Change-Id: I51eb9b2864afe1bb478ab9411eb7c590f995cd6e
Signed-off-by: Lianghu Su <lianghu.su@amlogic.com>
7 years agowifi: add pwm configuration for wifi 32k
Jian Hu [Mon, 19 Jun 2017 08:45:35 +0000 (16:45 +0800)]
wifi: add pwm configuration for wifi 32k

PD#146170: wifi: add pwm configuration for wifi 32k

Change-Id: If35f0a495b5b3f9a3ced9cf73ddb0ec7dc1f8ea6
Signed-off-by: Jian Hu <jian.hu@amlogic.com>
7 years agousb: gadget: f_fs: Fix possibe deadlock
Baolin Wang [Thu, 8 Dec 2016 11:55:22 +0000 (19:55 +0800)]
usb: gadget: f_fs: Fix possibe deadlock

When system try to close /dev/usb-ffs/adb/ep0 on one core, at the same
time another core try to attach new UDC, which will cause deadlock as
below scenario. Thus we should release ffs lock before issuing
unregister_gadget_item().

[   52.642225] c1 ======================================================
[   52.642228] c1 [ INFO: possible circular locking dependency detected ]
[   52.642236] c1 4.4.6+ #1 Tainted: G        W  O
[   52.642241] c1 -------------------------------------------------------
[   52.642245] c1 usb ffs open/2808 is trying to acquire lock:
[   52.642270] c0  (udc_lock){+.+.+.}, at: [<ffffffc00065aeec>]
usb_gadget_unregister_driver+0x3c/0xc8
[   52.642272] c1  but task is already holding lock:
[   52.642283] c0  (ffs_lock){+.+.+.}, at: [<ffffffc00066b244>]
ffs_data_clear+0x30/0x140
[   52.642285] c1 which lock already depends on the new lock.
[   52.642287] c1
               the existing dependency chain (in reverse order) is:
[   52.642295] c0
       -> #1 (ffs_lock){+.+.+.}:
[   52.642307] c0        [<ffffffc00012340c>] __lock_acquire+0x20f0/0x2238
[   52.642314] c0        [<ffffffc000123b54>] lock_acquire+0xe4/0x298
[   52.642322] c0        [<ffffffc000aaf6e8>] mutex_lock_nested+0x7c/0x3cc
[   52.642328] c0        [<ffffffc00066f7bc>] ffs_func_bind+0x504/0x6e8
[   52.642334] c0        [<ffffffc000654004>] usb_add_function+0x84/0x184
[   52.642340] c0        [<ffffffc000658ca4>] configfs_composite_bind+0x264/0x39c
[   52.642346] c0        [<ffffffc00065b348>] udc_bind_to_driver+0x58/0x11c
[   52.642352] c0        [<ffffffc00065b49c>] usb_udc_attach_driver+0x90/0xc8
[   52.642358] c0        [<ffffffc0006598e0>] gadget_dev_desc_UDC_store+0xd4/0x128
[   52.642369] c0        [<ffffffc0002c14e8>] configfs_write_file+0xd0/0x13c
[   52.642376] c0        [<ffffffc00023c054>] vfs_write+0xb8/0x214
[   52.642381] c0        [<ffffffc00023cad4>] SyS_write+0x54/0xb0
[   52.642388] c0        [<ffffffc000085ff0>] el0_svc_naked+0x24/0x28
[   52.642395] c0
              -> #0 (udc_lock){+.+.+.}:
[   52.642401] c0        [<ffffffc00011e3d0>] print_circular_bug+0x84/0x2e4
[   52.642407] c0        [<ffffffc000123454>] __lock_acquire+0x2138/0x2238
[   52.642412] c0        [<ffffffc000123b54>] lock_acquire+0xe4/0x298
[   52.642420] c0        [<ffffffc000aaf6e8>] mutex_lock_nested+0x7c/0x3cc
[   52.642427] c0        [<ffffffc00065aeec>] usb_gadget_unregister_driver+0x3c/0xc8
[   52.642432] c0        [<ffffffc00065995c>] unregister_gadget_item+0x28/0x44
[   52.642439] c0        [<ffffffc00066b34c>] ffs_data_clear+0x138/0x140
[   52.642444] c0        [<ffffffc00066b374>] ffs_data_reset+0x20/0x6c
[   52.642450] c0        [<ffffffc00066efd0>] ffs_data_closed+0xac/0x12c
[   52.642454] c0        [<ffffffc00066f070>] ffs_ep0_release+0x20/0x2c
[   52.642460] c0        [<ffffffc00023dbe4>] __fput+0xb0/0x1f4
[   52.642466] c0        [<ffffffc00023dd9c>] ____fput+0x20/0x2c
[   52.642473] c0        [<ffffffc0000ee944>] task_work_run+0xb4/0xe8
[   52.642482] c0        [<ffffffc0000cd45c>] do_exit+0x360/0xb9c
[   52.642487] c0        [<ffffffc0000cf228>] do_group_exit+0x4c/0xb0
[   52.642494] c0        [<ffffffc0000dd3c8>] get_signal+0x380/0x89c
[   52.642501] c0        [<ffffffc00008a8f0>] do_signal+0x154/0x518
[   52.642507] c0        [<ffffffc00008af00>] do_notify_resume+0x70/0x78
[   52.642512] c0        [<ffffffc000085ee8>] work_pending+0x1c/0x20
[   52.642514] c1
              other info that might help us debug this:
[   52.642517] c1  Possible unsafe locking scenario:
[   52.642518] c1        CPU0                    CPU1
[   52.642520] c1        ----                    ----
[   52.642525] c0   lock(ffs_lock);
[   52.642529] c0                                lock(udc_lock);
[   52.642533] c0                                lock(ffs_lock);
[   52.642537] c0   lock(udc_lock);
[   52.642539] c1
                      *** DEADLOCK ***
[   52.642543] c1 1 lock held by usb ffs open/2808:
[   52.642555] c0  #0:  (ffs_lock){+.+.+.}, at: [<ffffffc00066b244>]
ffs_data_clear+0x30/0x140
[   52.642557] c1 stack backtrace:
[   52.642563] c1 CPU: 1 PID: 2808 Comm: usb ffs open Tainted: G
[   52.642565] c1 Hardware name: Spreadtrum SP9860g Board (DT)
[   52.642568] c1 Call trace:
[   52.642573] c1 [<ffffffc00008b430>] dump_backtrace+0x0/0x170
[   52.642577] c1 [<ffffffc00008b5c0>] show_stack+0x20/0x28
[   52.642583] c1 [<ffffffc000422694>] dump_stack+0xa8/0xe0
[   52.642587] c1 [<ffffffc00011e548>] print_circular_bug+0x1fc/0x2e4
[   52.642591] c1 [<ffffffc000123454>] __lock_acquire+0x2138/0x2238
[   52.642595] c1 [<ffffffc000123b54>] lock_acquire+0xe4/0x298
[   52.642599] c1 [<ffffffc000aaf6e8>] mutex_lock_nested+0x7c/0x3cc
[   52.642604] c1 [<ffffffc00065aeec>] usb_gadget_unregister_driver+0x3c/0xc8
[   52.642608] c1 [<ffffffc00065995c>] unregister_gadget_item+0x28/0x44
[   52.642613] c1 [<ffffffc00066b34c>] ffs_data_clear+0x138/0x140
[   52.642618] c1 [<ffffffc00066b374>] ffs_data_reset+0x20/0x6c
[   52.642621] c1 [<ffffffc00066efd0>] ffs_data_closed+0xac/0x12c
[   52.642625] c1 [<ffffffc00066f070>] ffs_ep0_release+0x20/0x2c
[   52.642629] c1 [<ffffffc00023dbe4>] __fput+0xb0/0x1f4
[   52.642633] c1 [<ffffffc00023dd9c>] ____fput+0x20/0x2c
[   52.642636] c1 [<ffffffc0000ee944>] task_work_run+0xb4/0xe8
[   52.642640] c1 [<ffffffc0000cd45c>] do_exit+0x360/0xb9c
[   52.642644] c1 [<ffffffc0000cf228>] do_group_exit+0x4c/0xb0
[   52.642647] c1 [<ffffffc0000dd3c8>] get_signal+0x380/0x89c
[   52.642651] c1 [<ffffffc00008a8f0>] do_signal+0x154/0x518
[   52.642656] c1 [<ffffffc00008af00>] do_notify_resume+0x70/0x78
[   52.642659] c1 [<ffffffc000085ee8>] work_pending+0x1c/0x20

Bug: 62572621
Change-Id: I78adea011c3a87dfeb5c15750b7737975fda1742
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Baolin Wang <baolin.wang@linaro.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
(cherry picked from commit b3ce3ce02d146841af012d08506b4071db8ffde3)
Signed-off-by: Jerry Zhang <zhangjerry@google.com>
7 years agoFROMLIST: Remove the redundant skb->dev initialization in ip6_fragment
Chenbo Feng [Sat, 10 Jun 2017 19:35:38 +0000 (12:35 -0700)]
FROMLIST: Remove the redundant skb->dev initialization in ip6_fragment

After moves the skb->dev and skb->protocol initialization into
ip6_output, setting the skb->dev inside ip6_fragment is unnecessary.

Fixes: 97a7a37a7b7b("ipv6: Initial skb->dev and skb->protocol in ip6_output")
Signed-off-by: Chenbo Feng <fengc@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(url: http://patchwork.ozlabs.org/patch/774260/)
Bug: 30950746
Change-Id: I6ab42ecca2e2ab57f2c5988edf19d584de35e007

7 years agoFROMLIST: bpf: Remove duplicate tcp_filter hook in ipv6
Chenbo Feng [Fri, 9 Jun 2017 19:17:37 +0000 (12:17 -0700)]
FROMLIST: bpf: Remove duplicate tcp_filter hook in ipv6

There are two tcp_filter hooks in tcp_ipv6 ingress path currently.
One is at tcp_v6_rcv and another is in tcp_v6_do_rcv. It seems the
tcp_filter() call inside tcp_v6_do_rcv is redundent and some packet
will be filtered twice in this situation. This will cause trouble
when using eBPF filters to account traffic data.

Signed-off-by: Chenbo Feng <fengc@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(url: http://patchwork.ozlabs.org/patch/774126/)
Bug: 30950746
Change-Id: Id4fe8cd5b7bac11a4d4141e203dd4b9fa59f3d6c

7 years agoFROMLIST: ipv6: Initial skb->dev and skb->protocol in ip6_output
Chenbo Feng [Fri, 9 Jun 2017 19:06:07 +0000 (12:06 -0700)]
FROMLIST: ipv6: Initial skb->dev and skb->protocol in ip6_output

Move the initialization of skb->dev and skb->protocol from
ip6_finish_output2 to ip6_output. This can make the skb->dev and
skb->protocol information avalaible to the CGROUP eBPF filter.

Signed-off-by: Chenbo Feng <fengc@google.com>
Acked-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(url: http://patchwork.ozlabs.org/patch/774124/)
Bug: 30950746
Change-Id: Iac2304f7ba8cd769ee01a062cde2deb50562c3ad

7 years agoFROMLIST: bpf: cgroup skb progs cannot access ld_abs/ind
Daniel Borkmann [Tue, 6 Jun 2017 16:38:04 +0000 (18:38 +0200)]
FROMLIST: bpf: cgroup skb progs cannot access ld_abs/ind

Commit fb9a307d11d6 ("bpf: Allow CGROUP_SKB eBPF program to
access sk_buff") enabled programs of BPF_PROG_TYPE_CGROUP_SKB
type to use ld_abs/ind instructions. However, at this point,
we cannot use them, since offsets relative to SKF_LL_OFF will
end up pointing skb_mac_header(skb) out of bounds since in the
egress path it is not yet set at that point in time, but only
after __dev_queue_xmit() did a general reset on the mac header.
bpf_internal_load_pointer_neg_helper() will then end up reading
data from a wrong offset.

BPF_PROG_TYPE_CGROUP_SKB programs can use bpf_skb_load_bytes()
already to access packet data, which is also more flexible than
the insns carried over from cBPF.

Fixes: fb9a307d11d6 ("bpf: Allow CGROUP_SKB eBPF program to access sk_buff")
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Acked-by: Alexei Starovoitov <ast@kernel.org>
Cc: Chenbo Feng <fengc@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(url: http://patchwork.ozlabs.org/patch/771946/)

Signed-off-by: Chenbo Feng <fengc@google.com>
Bug: 30950746
Change-Id: Ia32ac79d8c0d18f811ec101897284a8b60cb042a

7 years agolcd: add lcd driver for axg
Evoke Zhang [Fri, 9 Jun 2017 02:46:09 +0000 (10:46 +0800)]
lcd: add lcd driver for axg

PD#142470: lcd: add lcd driver for axg

Change-Id: I58e2a2af474bafbbe3718f51493c9b46cb07cf31
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
7 years agomtd: nand: fix oob read pannic.
Yonghui Yu [Thu, 8 Jun 2017 13:00:13 +0000 (21:00 +0800)]
mtd: nand: fix oob read pannic.

PD#145890: nand: fix oob read

When reading oob by nandread from toolbox of andriod,
the oob should be protected. so we read back the whole
page with ecc on, and copy out oob only.

Change-Id: I08f35396015316a35631727dfbfedb862567d913
Signed-off-by: Yonghui Yu <yonghui.yu@amlogic.com>
7 years agomtd: nand: enhance the robust of env
Yonghui Yu [Wed, 14 Jun 2017 13:19:51 +0000 (21:19 +0800)]
mtd: nand: enhance the robust of env

PD#145594: nand: enhance the robust of env

1)enhance sudden power lost and ecc-error protection
2)add mtd env mutex for kernel

Change-Id: I0a454149c408f882924543d84db5d46591230d3d
Signed-off-by: Yonghui Yu <yonghui.yu@amlogic.com>
7 years agoosd: add osd driver for axg
Pengcheng Chen [Fri, 5 May 2017 05:48:36 +0000 (13:48 +0800)]
osd: add osd driver for axg

PD#146066: osd: add osd driver for axg bringup

Change-Id: Iea6889046d2a0bd0d7c79f106e4d89ed9828d035
Signed-off-by: Pengcheng Chen <pengcheng.chen@amlogic.com>
7 years agopcie: add pcie reset mode.
Yue Wang [Fri, 16 Jun 2017 03:04:35 +0000 (11:04 +0800)]
pcie: add pcie reset mode.

PD#142470: pcie: add pcie reset mode.

Change-Id: I76999754af16890a7c74d0f31978db69b7710191
Signed-off-by: Yue Wang <yue.wang@amlogic.com>
7 years agoANDROID: uid_sys_stats: check previous uid_entry before call find_or_register_uid
Ganesh Mahendran [Thu, 25 May 2017 07:20:29 +0000 (15:20 +0800)]
ANDROID: uid_sys_stats: check previous uid_entry before call find_or_register_uid

Theads in a process are stored in list struct task_struct->thread_group,
so it will be visited continiously in below loop:
do_each_thread(temp, task) {
    ...
} while_each_thread(temp, task);

I add some log in the loop, we can see below information:
[   65.033561] uid 1000, uid_entry ffffffc0f2761600
[   65.033567] uid 1000, uid_entry ffffffc0f2761600
[   65.033574] uid 1000, uid_entry ffffffc0f2761600
[   65.033581] uid 1000, uid_entry ffffffc0f2761600
[   65.033588] uid 1000, uid_entry ffffffc0f2761600
[   65.033595] uid 1000, uid_entry ffffffc0f2761600
[   65.033602] uid 1000, uid_entry ffffffc0f2761600
[   65.033609] uid 1000, uid_entry ffffffc0f2761600
[   65.033615] uid 1000, uid_entry ffffffc0f2761600
[   65.033622] uid 1000, uid_entry ffffffc0f2761600
[   65.033629] uid 1000, uid_entry ffffffc0f2761600
[   65.033637] uid 1000, uid_entry ffffffc0f2761600
[   65.033644] uid 1000, uid_entry ffffffc0f2761600
[   65.033651] uid 1000, uid_entry ffffffc0f2761600
[   65.033658] uid 1000, uid_entry ffffffc0f2761600
[   65.033665] uid 1000, uid_entry ffffffc0f2761600
[   65.033672] uid 1000, uid_entry ffffffc0f2761600
[   65.033680] uid 1000, uid_entry ffffffc0f2761600
[   65.033687] uid 1000, uid_entry ffffffc0f2761600
[   65.033694] uid 1000, uid_entry ffffffc0f2761600
[   65.033701] uid 1000, uid_entry ffffffc0f2761600
[   65.033708] uid 1000, uid_entry ffffffc0f2761600
[   65.033715] uid 1000, uid_entry ffffffc0f2761600
[   65.033722] uid 1000, uid_entry ffffffc0f2761600
[   65.033729] uid 1000, uid_entry ffffffc0f2761600
[   65.033736] uid 1000, uid_entry ffffffc0f2761600
[   65.033743] uid 1000, uid_entry ffffffc0f2761600
[   65.033750] uid 1000, uid_entry ffffffc0f2761600
[   65.033757] uid 1000, uid_entry ffffffc0f2761600
[   65.033763] uid 1000, uid_entry ffffffc0f2761600
[   65.033770] uid 1000, uid_entry ffffffc0f2761600
[   65.033777] uid 1000, uid_entry ffffffc0f2761600
[   65.033784] uid 1000, uid_entry ffffffc0f2761600
[   65.033791] uid 1000, uid_entry ffffffc0f2761600
[   65.033798] uid 1000, uid_entry ffffffc0f2761600

So we can check the previous uid_entry before calling find_or_register_uid
to save time.

Change-Id: I05ec1a1405a80c0a620cb4b4b2f6483dbfde7829
Signed-off-by: Ganesh Mahendran <opensource.ganesh@gmail.com>
7 years agopcie: power on pcie in the probe.
Yue Wang [Tue, 13 Jun 2017 03:05:06 +0000 (11:05 +0800)]
pcie: power on pcie in the probe.

PD#146002: pcie: power on pcie in the probe.

Change-Id: I36ec41c19a7d6bfbe364ddefeaa2c48f181d5d3b
Signed-off-by: Yue Wang <yue.wang@amlogic.com>
7 years agoMerge 4.9.32 into android-4.9
Greg Kroah-Hartman [Wed, 14 Jun 2017 14:42:56 +0000 (16:42 +0200)]
Merge 4.9.32 into android-4.9

Changes in 4.9.32
bnx2x: Fix Multi-Cos
vxlan: eliminate cached dst leak
ipv6: xfrm: Handle errors reported by xfrm6_find_1stfragopt()
cxgb4: avoid enabling napi twice to the same queue
tcp: disallow cwnd undo when switching congestion control
vxlan: fix use-after-free on deletion
ipv6: Fix leak in ipv6_gso_segment().
net: ping: do not abuse udp_poll()
net/ipv6: Fix CALIPSO causing GPF with datagram support
net: ethoc: enable NAPI before poll may be scheduled
net: stmmac: fix completely hung TX when using TSO
net: bridge: start hello timer only if device is up
sparc64: Add __multi3 for gcc 7.x and later.
sparc64: mm: fix copy_tsb to correctly copy huge page TSBs
sparc: Machine description indices can vary
sparc64: reset mm cpumask after wrap
sparc64: combine activate_mm and switch_mm
sparc64: redefine first version
sparc64: add per-cpu mm of secondary contexts
sparc64: new context wrap
sparc64: delete old wrap code
arch/sparc: support NR_CPUS = 4096
serial: ifx6x60: fix use-after-free on module unload
ptrace: Properly initialize ptracer_cred on fork
crypto: asymmetric_keys - handle EBUSY due to backlog correctly
KEYS: fix dereferencing NULL payload with nonzero length
KEYS: fix freeing uninitialized memory in key_update()
KEYS: encrypted: avoid encrypting/decrypting stack buffers
crypto: drbg - wait for crypto op not signal safe
crypto: gcm - wait for crypto op not signal safe
drm/amdgpu/ci: disable mclk switching for high refresh rates (v2)
nfsd4: fix null dereference on replay
nfsd: Fix up the "supattr_exclcreat" attributes
efi: Don't issue error message when booted under Xen
kvm: async_pf: fix rcu_irq_enter() with irqs enabled
KVM: cpuid: Fix read/write out-of-bounds vulnerability in cpuid emulation
arm64: KVM: Preserve RES1 bits in SCTLR_EL2
arm64: KVM: Allow unaligned accesses at EL2
arm: KVM: Allow unaligned accesses at HYP
KVM: async_pf: avoid async pf injection when in guest mode
KVM: arm/arm64: vgic-v3: Do not use Active+Pending state for a HW interrupt
KVM: arm/arm64: vgic-v2: Do not use Active+Pending state for a HW interrupt
dmaengine: usb-dmac: Fix DMAOR AE bit definition
dmaengine: ep93xx: Always start from BASE0
dmaengine: ep93xx: Don't drain the transfers in terminate_all()
dmaengine: mv_xor_v2: handle mv_xor_v2_prep_sw_desc() error properly
dmaengine: mv_xor_v2: properly handle wrapping in the array of HW descriptors
dmaengine: mv_xor_v2: do not use descriptors not acked by async_tx
dmaengine: mv_xor_v2: enable XOR engine after its configuration
dmaengine: mv_xor_v2: fix tx_submit() implementation
dmaengine: mv_xor_v2: remove interrupt coalescing
dmaengine: mv_xor_v2: set DMA mask to 40 bits
cfq-iosched: fix the delay of cfq_group's vdisktime under iops mode
xen/privcmd: Support correctly 64KB page granularity when mapping memory
ext4: fix SEEK_HOLE
ext4: keep existing extra fields when inode expands
ext4: fix data corruption with EXT4_GET_BLOCKS_ZERO
ext4: fix fdatasync(2) after extent manipulation operations
drm: Fix oops + Xserver hang when unplugging USB drm devices
usb: gadget: f_mass_storage: Serialize wake and sleep execution
usb: chipidea: udc: fix NULL pointer dereference if udc_start failed
usb: chipidea: debug: check before accessing ci_role
staging/lustre/lov: remove set_fs() call from lov_getstripe()
iio: adc: bcm_iproc_adc: swap primary and secondary isr handler's
iio: light: ltr501 Fix interchanged als/ps register field
iio: proximity: as3935: fix AS3935_INT mask
iio: proximity: as3935: fix iio_trigger_poll issue
mei: make sysfs modalias format similar as uevent modalias
cpufreq: cpufreq_register_driver() should return -ENODEV if init fails
target: Re-add check to reject control WRITEs with overflow data
drm/msm: Expose our reservation object when exporting a dmabuf.
ahci: Acer SA5-271 SSD Not Detected Fix
cgroup: Prevent kill_css() from being called more than once
Input: elantech - add Fujitsu Lifebook E546/E557 to force crc_enabled
cpuset: consider dying css as offline
fs: add i_blocksize()
ufs: restore proper tail allocation
fix ufs_isblockset()
ufs: restore maintaining ->i_blocks
ufs: set correct ->s_maxsize
ufs_extend_tail(): fix the braino in calling conventions of ufs_new_fragments()
ufs_getfrag_block(): we only grab ->truncate_mutex on block creation path
cxl: Fix error path on bad ioctl
cxl: Avoid double free_irq() for psl,slice interrupts
btrfs: use correct types for page indices in btrfs_page_exists_in_range
btrfs: fix memory leak in update_space_info failure path
KVM: arm/arm64: Handle possible NULL stage2 pud when ageing pages
scsi: qla2xxx: don't disable a not previously enabled PCI device
scsi: qla2xxx: Modify T262 FW dump template to specify same start/end to debug customer issues
scsi: qla2xxx: Set bit 15 for DIAG_ECHO_TEST MBC
scsi: qla2xxx: Fix mailbox pointer error in fwdump capture
powerpc/sysdev/simple_gpio: Fix oops in gpio save_regs function
powerpc/numa: Fix percpu allocations to be NUMA aware
powerpc/hotplug-mem: Fix missing endian conversion of aa_index
powerpc/kernel: Fix FP and vector register restoration
powerpc/kernel: Initialize load_tm on task creation
perf/core: Drop kernel samples even though :u is specified
drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()
drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
drm/vmwgfx: Make sure backup_handle is always valid
drm/nouveau/tmr: fully separate alarm execution/pending lists
ALSA: timer: Fix race between read and ioctl
ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
ASoC: Fix use-after-free at card unregistration
cpu/hotplug: Drop the device lock on error
drivers: char: mem: Fix wraparound check to allow mappings up to the end
serial: sh-sci: Fix panic when serial console and DMA are enabled
arm64: traps: fix userspace cache maintenance emulation on a tagged pointer
arm64: hw_breakpoint: fix watchpoint matching for tagged pointers
arm64: entry: improve data abort handling of tagged pointers
ARM: 8636/1: Cleanup sanity_check_meminfo
ARM: 8637/1: Adjust memory boundaries after reservations
usercopy: Adjust tests to deal with SMAP/PAN
drm/i915/vbt: don't propagate errors from intel_bios_init()
drm/i915/vbt: split out defaults that are set when there is no VBT
cpufreq: schedutil: move cached_raw_freq to struct sugov_policy
cpufreq: schedutil: Fix per-CPU structure initialization in sugov_start()
netfilter: nft_set_rbtree: handle element re-addition after deletion
Linux 4.9.32

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
7 years agoLinux 4.9.32 v4.9.32
Greg Kroah-Hartman [Wed, 14 Jun 2017 13:06:16 +0000 (15:06 +0200)]
Linux 4.9.32

7 years agonetfilter: nft_set_rbtree: handle element re-addition after deletion
Pablo Neira Ayuso [Sat, 20 May 2017 22:37:10 +0000 (00:37 +0200)]
netfilter: nft_set_rbtree: handle element re-addition after deletion

commit d2df92e98a34a5619dadd29c6291113c009181e7 upstream.

The existing code selects no next branch to be inspected when
re-inserting an inactive element into the rb-tree, looping endlessly.
This patch restricts the check for active elements to the EEXIST case
only.

Fixes: e701001e7cbe ("netfilter: nft_rbtree: allow adjacent intervals with dynamic updates")
Reported-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Tested-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agocpufreq: schedutil: Fix per-CPU structure initialization in sugov_start()
Rafael J. Wysocki [Sun, 19 Mar 2017 13:30:02 +0000 (14:30 +0100)]
cpufreq: schedutil: Fix per-CPU structure initialization in sugov_start()

commit 4296f23ed49a15d36949458adcc66ff993dee2a8 upstream.

sugov_start() only initializes struct sugov_cpu per-CPU structures
for shared policies, but it should do that for single-CPU policies too.

That in particular makes the IO-wait boost mechanism work in the
cases when cpufreq policies correspond to individual CPUs.

Fixes: 21ca6d2c52f8 (cpufreq: schedutil: Add iowait boosting)
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agocpufreq: schedutil: move cached_raw_freq to struct sugov_policy
Viresh Kumar [Thu, 2 Mar 2017 08:33:20 +0000 (14:03 +0530)]
cpufreq: schedutil: move cached_raw_freq to struct sugov_policy

commit 6c4f0fa643cb9e775dcc976e3db00d649468ff1d upstream.

cached_raw_freq applies to the entire cpufreq policy and not individual
CPUs. Apart from wasting per-cpu memory, it is actually wrong to keep it
in struct sugov_cpu as we may end up comparing next_freq with a stale
cached_raw_freq of a random CPU.

Move cached_raw_freq to struct sugov_policy.

Fixes: 5cbea46984d6 (cpufreq: schedutil: map raw required frequency to driver frequency)
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agodrm/i915/vbt: split out defaults that are set when there is no VBT
Jani Nikula [Fri, 10 Mar 2017 13:27:58 +0000 (15:27 +0200)]
drm/i915/vbt: split out defaults that are set when there is no VBT

commit bb1d132935c2f87cd261eb559759fe49d5e5dc43 upstream.

The main thing are the DDI ports. If there's a VBT that says there are
no outputs, we should trust that, and not have semi-random
defaults. Unfortunately, the defaults have resulted in some Chromebooks
without VBT to rely on this behaviour, so we split out the defaults for
the missing VBT case.

Reviewed-by: Manasi Navare <manasi.d.navare@intel.com>
Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/95c26079ff640d43f53b944f17e9fc356b36daec.1489152288.git.jani.nikula@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agodrm/i915/vbt: don't propagate errors from intel_bios_init()
Jani Nikula [Fri, 10 Mar 2017 13:27:57 +0000 (15:27 +0200)]
drm/i915/vbt: don't propagate errors from intel_bios_init()

commit 665788572c6410b7efadc2e3009c5d830b6d8ef9 upstream.

We don't use the error return for anything other than reporting and
logging that there is no VBT. We can pull the logging in the function,
and remove the error status return. Moreover, if we needed the
information for something later on, we'd probably be better off storing
the bit in dev_priv, and using it where it's needed, instead of using
the error return.

While at it, improve the comments.

Cc: Manasi Navare <manasi.d.navare@intel.com>
Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/438ebbb0d5f0d321c625065b9cc78532a1dab24f.1489152288.git.jani.nikula@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agousercopy: Adjust tests to deal with SMAP/PAN
Kees Cook [Mon, 13 Feb 2017 19:25:26 +0000 (11:25 -0800)]
usercopy: Adjust tests to deal with SMAP/PAN

commit f5f893c57e37ca730808cb2eee3820abd05e7507 upstream.

Under SMAP/PAN/etc, we cannot write directly to userspace memory, so
this rearranges the test bytes to get written through copy_to_user().
Additionally drops the bad copy_from_user() test that would trigger a
memcpy() against userspace on failure.

[arnd: the test module was added in 3.14, and this backported patch
       should apply cleanly on all version from 3.14 to 4.10.
       The original patch was in 4.11 on top of a context change
       I saw the bug triggered with kselftest on a 4.4.y stable kernel]

Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoARM: 8637/1: Adjust memory boundaries after reservations
Laura Abbott [Fri, 13 Jan 2017 21:51:45 +0000 (22:51 +0100)]
ARM: 8637/1: Adjust memory boundaries after reservations

commit 985626564eedc470ce2866e53938303368ad41b7 upstream.

adjust_lowmem_bounds is responsible for setting up the boundary for
lowmem/highmem. This needs to be setup before memblock reservations can
occur. At the time memblock reservations can occur, memory can also be
removed from the system. The lowmem/highmem boundary and end of memory
may be affected by this but it is currently not recalculated. On some
systems this may be harmless, on others this may result in incorrect
ranges being passed to the main memory allocator. Correct this by
recalculating the lowmem/highmem boundary after all reservations have
been made.

Tested-by: Magnus Lilja <lilja.magnus@gmail.com>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Julien Grall <julien.grall@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoARM: 8636/1: Cleanup sanity_check_meminfo
Laura Abbott [Fri, 13 Jan 2017 21:51:08 +0000 (22:51 +0100)]
ARM: 8636/1: Cleanup sanity_check_meminfo

commit 374d446d25d6271ee615952a3b7f123ba4983c35 upstream.

The logic for sanity_check_meminfo has become difficult to
follow. Clean up the code so it's more obvious what the code
is actually trying to do. Additionally, meminfo is now removed
so rename the function to better describe its purpose.

Tested-by: Magnus Lilja <lilja.magnus@gmail.com>
Reviewed-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Signed-off-by: Laura Abbott <labbott@redhat.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Cc: Julien Grall <julien.grall@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoarm64: entry: improve data abort handling of tagged pointers
Kristina Martsenko [Tue, 6 Jun 2017 19:14:10 +0000 (20:14 +0100)]
arm64: entry: improve data abort handling of tagged pointers

commit 276e93279a630657fff4b086ba14c95955912dfa upstream.

This backport has a minor difference from the upstream commit: it adds
the asm-uaccess.h file, which is not present in 4.9, because 4.9 does
not have commit b4b8664d291a ("arm64: don't pull uaccess.h into *.S").

Original patch description:

When handling a data abort from EL0, we currently zero the top byte of
the faulting address, as we assume the address is a TTBR0 address, which
may contain a non-zero address tag. However, the address may be a TTBR1
address, in which case we should not zero the top byte. This patch fixes
that. The effect is that the full TTBR1 address is passed to the task's
signal handler (or printed out in the kernel log).

When handling a data abort from EL1, we leave the faulting address
intact, as we assume it's either a TTBR1 address or a TTBR0 address with
tag 0x00. This is true as far as I'm aware, we don't seem to access a
tagged TTBR0 address anywhere in the kernel. Regardless, it's easy to
forget about address tags, and code added in the future may not always
remember to remove tags from addresses before accessing them. So add tag
handling to the EL1 data abort handler as well. This also makes it
consistent with the EL0 data abort handler.

Fixes: d50240a5f6ce ("arm64: mm: permit use of tagged pointers at EL0")
Reviewed-by: Dave Martin <Dave.Martin@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoarm64: hw_breakpoint: fix watchpoint matching for tagged pointers
Kristina Martsenko [Tue, 6 Jun 2017 19:14:09 +0000 (20:14 +0100)]
arm64: hw_breakpoint: fix watchpoint matching for tagged pointers

commit 7dcd9dd8cebe9fa626af7e2358d03a37041a70fb upstream.

This backport has a small difference from the upstream commit:
 - The address tag is removed in watchpoint_handler() instead of
   get_distance_from_watchpoint(), because 4.9 does not have commit
   fdfeff0f9e3d ("arm64: hw_breakpoint: Handle inexact watchpoint
   addresses").

Original patch description:

When we take a watchpoint exception, the address that triggered the
watchpoint is found in FAR_EL1. We compare it to the address of each
configured watchpoint to see which one was hit.

The configured watchpoint addresses are untagged, while the address in
FAR_EL1 will have an address tag if the data access was done using a
tagged address. The tag needs to be removed to compare the address to
the watchpoints.

Currently we don't remove it, and as a result can report the wrong
watchpoint as being hit (specifically, always either the highest TTBR0
watchpoint or lowest TTBR1 watchpoint). This patch removes the tag.

Fixes: d50240a5f6ce ("arm64: mm: permit use of tagged pointers at EL0")
Acked-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoarm64: traps: fix userspace cache maintenance emulation on a tagged pointer
Kristina Martsenko [Tue, 6 Jun 2017 19:14:08 +0000 (20:14 +0100)]
arm64: traps: fix userspace cache maintenance emulation on a tagged pointer

commit 81cddd65b5c82758ea5571a25e31ff6f1f89ff02 upstream.

This backport has a minor difference from the upstream commit, as v4.9
did not yet have the refactoring done by commit 8b6e70fccff2 ("arm64:
traps: correctly handle MRS/MSR with XZR").

Original patch description:

When we emulate userspace cache maintenance in the kernel, we can
currently send the task a SIGSEGV even though the maintenance was done
on a valid address. This happens if the address has a non-zero address
tag, and happens to not be mapped in.

When we get the address from a user register, we don't currently remove
the address tag before performing cache maintenance on it. If the
maintenance faults, we end up in either __do_page_fault, where find_vma
can't find the VMA if the address has a tag, or in do_translation_fault,
where the tagged address will appear to be above TASK_SIZE. In both
cases, the address is not mapped in, and the task is sent a SIGSEGV.

This patch removes the tag from the address before using it. With this
patch, the fault is handled correctly, the address gets mapped in, and
the cache maintenance succeeds.

As a second bug, if cache maintenance (correctly) fails on an invalid
tagged address, the address gets passed into arm64_notify_segfault,
where find_vma fails to find the VMA due to the tag, and the wrong
si_code may be sent as part of the siginfo_t of the segfault. With this
patch, the correct si_code is sent.

Fixes: 7dd01aef0557 ("arm64: trap userspace "dc cvau" cache operation on errata-affected core")
Acked-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoserial: sh-sci: Fix panic when serial console and DMA are enabled
Takatoshi Akiyama [Mon, 27 Feb 2017 06:56:31 +0000 (15:56 +0900)]
serial: sh-sci: Fix panic when serial console and DMA are enabled

commit 3c9101766b502a0163d1d437fada5801cf616be2 upstream.

This patch fixes an issue that kernel panic happens when DMA is enabled
and we press enter key while the kernel booting on the serial console.

* An interrupt may occur after sci_request_irq().
* DMA transfer area is initialized by setup_timer() in sci_request_dma()
  and used in interrupt.

If an interrupt occurred between sci_request_irq() and setup_timer() in
sci_request_dma(), DMA transfer area has not been initialized yet.
So, this patch changes the order of sci_request_irq() and
sci_request_dma().

Fixes: 73a19e4c0301 ("serial: sh-sci: Add DMA support.")
Signed-off-by: Takatoshi Akiyama <takatoshi.akiyama.kj@ps.hitachi-solutions.com>
[Shimoda changes the commit log]
Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agodrivers: char: mem: Fix wraparound check to allow mappings up to the end
Julius Werner [Fri, 2 Jun 2017 22:36:39 +0000 (15:36 -0700)]
drivers: char: mem: Fix wraparound check to allow mappings up to the end

commit 32829da54d9368103a2f03269a5120aa9ee4d5da upstream.

A recent fix to /dev/mem prevents mappings from wrapping around the end
of physical address space. However, the check was written in a way that
also prevents a mapping reaching just up to the end of physical address
space, which may be a valid use case (especially on 32-bit systems).
This patch fixes it by checking the last mapped address (instead of the
first address behind that) for overflow.

Fixes: b299cde245 ("drivers: char: mem: Check for address space wraparound with mmap()")
Reported-by: Nico Huber <nico.h@gmx.de>
Signed-off-by: Julius Werner <jwerner@chromium.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agocpu/hotplug: Drop the device lock on error
Sebastian Andrzej Siewior [Fri, 2 Jun 2017 14:27:14 +0000 (16:27 +0200)]
cpu/hotplug: Drop the device lock on error

commit 40da1b11f01e43aad1aa6cea64681b6125e8a2a7 upstream.

If a custom CPU target is specified and that one is not available _or_
can't be interrupted then the code returns to userland without dropping a
lock as notices by lockdep:

|echo 133 > /sys/devices/system/cpu/cpu7/hotplug/target
| ================================================
| [ BUG: lock held when returning to user space! ]
| ------------------------------------------------
| bash/503 is leaving the kernel with locks still held!
| 1 lock held by bash/503:
|  #0:  (device_hotplug_lock){+.+...}, at: [<ffffffff815b5650>] lock_device_hotplug_sysfs+0x10/0x40

So release the lock then.

Fixes: 757c989b9994 ("cpu/hotplug: Make target state writeable")
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20170602142714.3ogo25f2wbq6fjpj@linutronix.de
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoASoC: Fix use-after-free at card unregistration
Takashi Iwai [Wed, 24 May 2017 08:19:45 +0000 (10:19 +0200)]
ASoC: Fix use-after-free at card unregistration

commit 4efda5f2130da033aeedc5b3205569893b910de2 upstream.

soc_cleanup_card_resources() call snd_card_free() at the last of its
procedure.  This turned out to lead to a use-after-free.
PCM runtimes have been already removed via soc_remove_pcm_runtimes(),
while it's dereferenced later in soc_pcm_free() called via
snd_card_free().

The fix is simple: just move the snd_card_free() call to the beginning
of the whole procedure.  This also gives another benefit: it
guarantees that all operations have been shut down before actually
releasing the resources, which was racy until now.

Reported-and-tested-by: Robert Jarzmik <robert.jarzmik@free.fr>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT
Takashi Iwai [Fri, 2 Jun 2017 15:26:56 +0000 (17:26 +0200)]
ALSA: timer: Fix missing queue indices reset at SNDRV_TIMER_IOCTL_SELECT

commit ba3021b2c79b2fa9114f92790a99deb27a65b728 upstream.

snd_timer_user_tselect() reallocates the queue buffer dynamically, but
it forgot to reset its indices.  Since the read may happen
concurrently with ioctl and snd_timer_user_tselect() allocates the
buffer via kmalloc(), this may lead to the leak of uninitialized
kernel-space data, as spotted via KMSAN:

  BUG: KMSAN: use of unitialized memory in snd_timer_user_read+0x6c4/0xa10
  CPU: 0 PID: 1037 Comm: probe Not tainted 4.11.0-rc5+ #2739
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
  Call Trace:
   __dump_stack lib/dump_stack.c:16
   dump_stack+0x143/0x1b0 lib/dump_stack.c:52
   kmsan_report+0x12a/0x180 mm/kmsan/kmsan.c:1007
   kmsan_check_memory+0xc2/0x140 mm/kmsan/kmsan.c:1086
   copy_to_user ./arch/x86/include/asm/uaccess.h:725
   snd_timer_user_read+0x6c4/0xa10 sound/core/timer.c:2004
   do_loop_readv_writev fs/read_write.c:716
   __do_readv_writev+0x94c/0x1380 fs/read_write.c:864
   do_readv_writev fs/read_write.c:894
   vfs_readv fs/read_write.c:908
   do_readv+0x52a/0x5d0 fs/read_write.c:934
   SYSC_readv+0xb6/0xd0 fs/read_write.c:1021
   SyS_readv+0x87/0xb0 fs/read_write.c:1018

This patch adds the missing reset of queue indices.  Together with the
previous fix for the ioctl/read race, we cover the whole problem.

Reported-by: Alexander Potapenko <glider@google.com>
Tested-by: Alexander Potapenko <glider@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoALSA: timer: Fix race between read and ioctl
Takashi Iwai [Fri, 2 Jun 2017 13:03:38 +0000 (15:03 +0200)]
ALSA: timer: Fix race between read and ioctl

commit d11662f4f798b50d8c8743f433842c3e40fe3378 upstream.

The read from ALSA timer device, the function snd_timer_user_tread(),
may access to an uninitialized struct snd_timer_user fields when the
read is concurrently performed while the ioctl like
snd_timer_user_tselect() is invoked.  We have already fixed the races
among ioctls via a mutex, but we seem to have forgotten the race
between read vs ioctl.

This patch simply applies (more exactly extends the already applied
range of) tu->ioctl_lock in snd_timer_user_tread() for closing the
race window.

Reported-by: Alexander Potapenko <glider@google.com>
Tested-by: Alexander Potapenko <glider@google.com>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agodrm/nouveau/tmr: fully separate alarm execution/pending lists
Ben Skeggs [Mon, 5 Jun 2017 07:23:32 +0000 (17:23 +1000)]
drm/nouveau/tmr: fully separate alarm execution/pending lists

commit b4e382ca7586a63b6c1e5221ce0863ff867c2df6 upstream.

Reusing the list_head for both is a bad idea.  Callback execution is done
with the lock dropped so that alarms can be rescheduled from the callback,
which means that with some unfortunate timing, lists can get corrupted.

The execution list should not require its own locking, the single function
that uses it can only be called from a single context.

Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agodrm/vmwgfx: Make sure backup_handle is always valid
Sinclair Yeh [Fri, 2 Jun 2017 05:50:57 +0000 (07:50 +0200)]
drm/vmwgfx: Make sure backup_handle is always valid

commit 07678eca2cf9c9a18584e546c2b2a0d0c9a3150c upstream.

When vmw_gb_surface_define_ioctl() is called with an existing buffer,
we end up returning an uninitialized variable in the backup_handle.

The fix is to first initialize backup_handle to 0 just to be sure, and
second, when a user-provided buffer is found, we will use the
req->buffer_handle as the backup_handle.

Reported-by: Murray McAllister <murray.mcallister@insomniasec.com>
Signed-off-by: Sinclair Yeh <syeh@vmware.com>
Reviewed-by: Deepak Rawat <drawat@vmware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agodrm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()
Vladis Dronov [Fri, 2 Jun 2017 05:42:09 +0000 (07:42 +0200)]
drm/vmwgfx: limit the number of mip levels in vmw_gb_surface_define_ioctl()

commit ee9c4e681ec4f58e42a83cb0c22a0289ade1aacf upstream.

The 'req->mip_levels' parameter in vmw_gb_surface_define_ioctl() is
a user-controlled 'uint32_t' value which is used as a loop count limit.
This can lead to a kernel lockup and DoS. Add check for 'req->mip_levels'.

References:
https://bugzilla.redhat.com/show_bug.cgi?id=1437431

Signed-off-by: Vladis Dronov <vdronov@redhat.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agodrm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()
Dan Carpenter [Thu, 27 Apr 2017 09:12:08 +0000 (12:12 +0300)]
drm/vmwgfx: Handle vmalloc() failure in vmw_local_fifo_reserve()

commit f0c62e9878024300319ba2438adc7b06c6b9c448 upstream.

If vmalloc() fails then we need to a bit of cleanup before returning.

Fixes: fb1d9738ca05 ("drm/vmwgfx: Add DRM driver for VMware Virtual GPU")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
7 years agoperf/core: Drop kernel samples even though :u is specified
Jin Yao [Thu, 25 May 2017 10:09:07 +0000 (18:09 +0800)]
perf/core: Drop kernel samples even though :u is specified

commit cc1582c231ea041fbc68861dfaf957eaf902b829 upstream.

When doing sampling, for example:

  perf record -e cycles:u ...

On workloads that do a lot of kernel entry/exits we see kernel
samples, even though :u is specified. This is due to skid existing.

This might be a security issue because it can leak kernel addresses even
though kernel sampling support is disabled.

The patch drops the kernel samples if exclude_kernel is specified.

For example, test on Haswell desktop:

  perf record -e cycles:u <mgen>
  perf report --stdio

Before patch applied:

    99.77%  mgen     mgen              [.] buf_read
     0.20%  mgen     mgen              [.] rand_buf_init
     0.01%  mgen     [kernel.vmlinux]  [k] apic_timer_interrupt
     0.00%  mgen     mgen              [.] last_free_elem
     0.00%  mgen     libc-2.23.so      [.] __random_r
     0.00%  mgen     libc-2.23.so      [.] _int_malloc
     0.00%  mgen     mgen              [.] rand_array_init
     0.00%  mgen     [kernel.vmlinux]  [k] page_fault
     0.00%  mgen     libc-2.23.so      [.] __random
     0.00%  mgen     libc-2.23.so      [.] __strcasestr
     0.00%  mgen     ld-2.23.so        [.] strcmp
     0.00%  mgen     ld-2.23.so        [.] _dl_start
     0.00%  mgen     libc-2.23.so      [.] sched_setaffinity@@GLIBC_2.3.4
     0.00%  mgen     ld-2.23.so        [.] _start

We can see kernel symbols apic_timer_interrupt and page_fault.

After patch applied:

    99.79%  mgen     mgen           [.] buf_read
     0.19%  mgen     mgen           [.] rand_buf_init
     0.00%  mgen     libc-2.23.so   [.] __random_r
     0.00%  mgen     mgen           [.] rand_array_init
     0.00%  mgen     mgen           [.] last_free_elem
     0.00%  mgen     libc-2.23.so   [.] vfprintf
     0.00%  mgen     libc-2.23.so   [.] rand
     0.00%  mgen     libc-2.23.so   [.] __random
     0.00%  mgen     libc-2.23.so   [.] _int_malloc
     0.00%  mgen     libc-2.23.so   [.] _IO_doallocbuf
     0.00%  mgen     ld-2.23.so     [.] do_lookup_x
     0.00%  mgen     ld-2.23.so     [.] open_verify.constprop.7
     0.00%  mgen     ld-2.23.so     [.] _dl_important_hwcaps
     0.00%  mgen     libc-2.23.so   [.] sched_setaffinity@@GLIBC_2.3.4
     0.00%  mgen     ld-2.23.so     [.] _start

There are only userspace symbols.

Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Vince Weaver <vincent.weaver@maine.edu>
Cc: acme@kernel.org
Cc: jolsa@kernel.org
Cc: kan.liang@intel.com
Cc: mark.rutland@arm.com
Cc: will.deacon@arm.com
Cc: yao.jin@intel.com
Link: http://lkml.kernel.org/r/1495706947-3744-1-git-send-email-yao.jin@linux.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>