Commit Graph

640588 Commits

Author SHA1 Message Date
Xing Wang
f8225ed348 audio: fix loopback channel map
PD#149869: audio: fix tdmin_lb channel mask and swap for loopback

Change-Id: I1bf2dd42a2869ca2404b72e1f0e57a267f365e23
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2017-08-30 23:12:57 -07:00
Victor Wan
3f653b7e57 Merge branch 'android-4.9' into amlogic-4.9-dev
Conflicts:
	arch/arm/configs/s3c2410_defconfig
	drivers/mmc/core/mmc.c

Signed-off-by: Victor Wan <victor.wan@amlogic.com>
2017-08-31 14:01:28 +08:00
Peipeng Zhao
27365be189 codec: fixed codec tlv320adc3101 driver clk error on 48K and 16K
PD#150168: fixed codec tlv320adc3101 record error on 48K and 16K

Change-Id: Ia672427de4c1a0e730eecdb00133d84640720785
Signed-off-by: Peipeng Zhao <peipeng.zhao@amlogic.com>
2017-08-30 18:34:39 -07:00
Kaifu Hu
593a00aecc hdmitx: fix 4k smpte no signal
PD#149239: hdmitx: fix 4k smpte no signal
when 4k smpte 444,10bit, div40 and scramble need be setted

Change-Id: Iadfc337519e1444c244b36086c3929d231bd80c4
Signed-off-by: Kaifu Hu <kaifu.hu@amlogic.com>
2017-08-30 02:39:12 -07:00
Evoke Zhang
eb484d7d1e vout: optimize tvout monitor function
PD#149868: vout: optimize tvout monitor function as below:
1.add vout_mutex lock to prevent tvout_monitor and vout_mode_store
  running at the same time;
2.vout_mode_store operation will stop tvout_monitor running.

Change-Id: Ic2578357edb17cf471b90bec50ba11eb9178a8e9
Signed-off-by: Evoke Zhang <evoke.zhang@amlogic.com>
2017-08-29 21:28:48 -07:00
Yueguie He
dab18a1896 mtd: add slc ids
PD#150009: mtd: nand: add slc ids

     1. spansion 1024MB S34ML08G1

Change-Id: I5844574a21b0e59b10ab133db98b4f32f4547f1f
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
2017-08-29 19:57:43 -07:00
Ao Xu
91a4c424e5 defconfig: remove CONFIG_SYSVIPC to fix AndroidO CTS fail
PD#149771: remove CONFIG_SYSVIPC to fix AndroidO CTS fail

Change-Id: I16eca775b80480ca5ea1f8b5187b29ca1a5a8ed2
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
2017-08-29 18:59:25 -07:00
Qiufang Dai
7f189cd740 pcie: move mipi gate control to pcie driver.
PD#147022: pcie: mipi share gate control.

Change-Id: I85d9676e39db548b39c4c9d3ece0ca1572bffe26
Signed-off-by: Qiufang Dai <qiufang.dai@amlogic.com>
2017-08-29 00:26:48 -07:00
yi.zeng
14ffc2f9d8 nand: fix nand key read issue
PD#146835: nand: fix the nand key read issue caused by overload memory

Change-Id: I53ce06da8ddf5f691898a7546b1b96bb9af486cd
Signed-off-by: yi.zeng <yi.zeng@amlogic.com>
2017-08-27 23:01:25 -07:00
Shuai Li
3ad6cafbff audio: add channel constrains for TDM
PD#149888: constrains max channels number by DTS lanes
and tx_mask configs. If not, FIFO will fetch the wrong
data and cause abnormal behavior for I2S data.

Change-Id: Ic10bb773f6360ad0dfee74c227adb279dcc47cec
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2017-08-28 11:21:47 +08:00
Shuai Li
c394c3d4da audio: fix codecs kcontrol bugs
PD#145715: kernel 4.9 use components to wrapper the codec instance.
When poring form early versions, we have no idea about
this change. And this commit fixes this issue.

Change-Id: I56357b45c1bf93844f77fe89a828911fa9779406
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2017-08-25 19:36:26 +08:00
Ao Xu
6160490e79 pstore: change pstore address to 0x7400000
PD#149300: pstore: change pstore address to 0x7400000

Change-Id: Ic8f4240a2c5c4c2137ad4c050a9af8692be15dba
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
2017-08-24 18:41:36 -07:00
Nanxin Qin
435ded217d frame_sync: fixed the issure of the player that starts slowly [2/2]
PD#148146: modify checkin_firstvpts to 0xffffffff

Change-Id: I16d75f8cd0f7ed7582f731db42bc247c49580974
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
2017-08-24 04:07:16 -07:00
Ao Xu
c5a8273643 defconfig: enable configs to fix AndroidO CTS and VTS fail
PD#149771: enable configs to fix AndroidO CTS and VTS fail
CONFIG_IKCONFIG_PROC=y
CONFIG_TASKSTATS=y
CONFIG_TASK_DELAY_ACCT=y
CONFIG_TASK_XACCT=y
CONFIG_TASK_IO_ACCOUNTING=y
CONFIG_IKCONFIG=y
CONFIG_CPU_FREQ_STAT=y

In order to know how the kernel was configured via /proc,
select the CONFIG_IKCONFIG_PROC is a good choice.

Change-Id: Ief65788029157adfbd3351f6a1d589670e440d76
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
2017-08-24 03:23:33 -07:00
Xindong Xu
f6e964fdda dts: adjust partition table for Android 8.0 [1/2]
PD#149137: dts: adjust partition table for Android 8.0

1. delete crypt
2. change tee to 32M
3. add param 16M
4. add cri_data 8M
5. add dto 8M
6. change logo to 8M
7. change misc to 8M
8. change boot to 16M
9. change recovery to 24M
10. change system to 1856M
11. change cache to 1120M

Change-Id: Ice80dee7736a127c555cac641bc3a8874aeb519e
Signed-off-by: Xindong Xu <xindong.xu@amlogic.com>
2017-08-23 22:59:30 -07:00
Yue Wang
b099141ced pcie: enable pcie pm.
PD#147022: pcie: enable pcie pm.

Change-Id: Ide75af5cbe2bb840887e36a174cbfec33691534c
Signed-off-by: Yue Wang <yue.wang@amlogic.com>
2017-08-23 19:29:06 -07:00
Haibing.An
166baac573 dts: axg: fix error when unistall wifi that call trace
PD#148250: S400 and S420

Change-Id: I690f3ab850e01d3ad8a48fc01d74625a89a8db11
Signed-off-by: Haibing.An <haibing.an@amlogic.com>
2017-08-23 02:03:26 -07:00
Yonghui Yu
5c04369dab nand: add toshiba 512M(TC58NVG2S0HTA00)
PD#149262: mtd:nand : add toshiba 512M(TC58NVG2S0HTA00)

Change-Id: Ib4e5abca5b1b99542df1e9a6dc3ed347474ecfa2
Signed-off-by: Yonghui Yu <yonghui.yu@amlogic.com>
2017-08-22 21:17:29 -07:00
Weiming Liu
cfc3eabe2f lcd_extern: fix i2c address mistake for dts config
PD#149233: lcd: add lcd_extern driver za7783
1.add lcd_extern driver za7783
2.modify the axg pll parameters
3.read under the dts lcd_extern i2c address errors

Change-Id: Ib059805a6a82d7896b2394d451d5aedb3f10ecb9
Signed-off-by: Weiming Liu <weiming.liu@amlogic.com>
2017-08-22 21:12:22 -07:00
binqi.zhang
ef37f7699a mm: export symbol for show_mem
PD#149671: mm: export symbol for show_mem.

export symbol for show_mem() and other modules can use the function

Change-Id: Ia4b0c595ada1db2326e07d67b136ad92c9d3cb67
Signed-off-by: binqi.zhang <binqi.zhang@amlogic.com>
(cherry picked from commit 53577ac0164bcd9e933ec43c18139f2f1c55ea56)
2017-08-22 05:35:03 -07:00
Nanxin Qin
1e8a600f17 rdma: fixed issure of crash on boot.
PD#149681: removed the operation of registers in the rdma_init

Change-Id: Iecf12be123952d0a5eb91b77e433d3fb67378d4e
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
2017-08-22 01:38:45 -07:00
Peipeng Zhao
fae3bc0f1d dts: axg: fix bluetooth pinmux problems
PD#149672:
	modified dts tdma data pinmux, tdma output data pin
	need be set tdma_out1. otherwise soc can not send data
	to Bluetooth.

Change-Id: I62a0ea89de092c6b9c3504223822e8c7fd58ecad
Signed-off-by: Peipeng Zhao <peipeng.zhao@amlogic.com>
2017-08-22 01:11:47 -07:00
Nanxin Qin
0a5e4639e4 media: merged code from 43177e6a on the amlogic-3.14-dev
PD#146152: merged code from 43177e6a on the amlogic-3.14-dev

1. support for multi-instance features
2. fixed in multi-instance codec_mm memory bugs and added some
debugging information
3. optimization of vfm problems

Change-Id: I43ba9d4894ae71d53c158df667490030735b9e1e
Signed-off-by: Nanxin Qin <nanxin.qin@amlogic.com>
Signed-off-by: KeLe Bai <kele.bai@amlogic.com>
2017-08-21 20:30:19 +08:00
Ao Xu
2ea937e0a6 defconfig: add uid_sys_stats and cpu_freq_stat support
PD#149464: defconfig: add uid_sys_stats and cpu_freq_stat support
1. add CONFIG_CPU_FREQ_STAT
2. add CONFIG_UID_SYS_STATS
3. remove CONFIG_FHANDLE

Change-Id: I2b165676619a46e95ed2f75354e6e0a440cac43f
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
2017-08-20 22:40:37 -07:00
Yueguie He
a66415a86b dts: axg: support 128m ddr
PD#148955: dts: support 128m ddr

Change-Id: I7694bb10659b748c4e43e665945dcd7e8082a68e
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
2017-08-20 22:20:29 -07:00
Dezhi Kong
ef7ba3783f vpp: fix interlace out issue
PD#145318: vpp: fix interlace out issue

Change-Id: I623bbaf0b0795029ca689a81cf10c274afaa1fc3
Signed-off-by: Dezhi Kong <dezhi.kong@amlogic.com>
2017-08-20 20:17:22 -07:00
jianxin.pan
2e1f080dbb security: fix security issues about memory and registers
PD#138714: fix security issuses
1.Kernel Memory Corruption in efuse_read_usr()
Kernel Memory Corruption in efuse_read_usr()

2.Audio SoC DebugFS Entry Allows Kernel Memory Corruption

3.Kernel Stack Buffer Overwrite in clk_test debugfs

4.Register DebugFS Entry Allows Kernel Memory Read

Change-Id: I49373967732dde10e589f07aaab313340ba726e7
Signed-off-by: jianxin.pan <jianxin.pan@amlogic.com>
2017-08-20 20:04:55 -07:00
Qiufang Dai
b0b5c33480 dts: axg: enable vrtc for axg
PD#149457: rtc: enable vrtc for axg

Change-Id: Ibb724cdbc767173e84a1238ffd5d33190f09efe0
Signed-off-by: Qiufang Dai <qiufang.dai@amlogic.com>
2017-08-18 02:39:25 -07:00
Xing Wang
2c8b10e48d audio: snd mixer controls for tdm/spdif
PD#147540: audio: add snd mixer controls for tdm/spdif
1. add gain/mute/swap/mask for tdm/spdif
2. channel status for spdif in/out
3. add loopback for s420, and fix datain channel number

Change-Id: I81d4432dc2b73c7cb0275087fc3d4e23ec83e400
Signed-off-by: Xing Wang <xing.wang@amlogic.com>
2017-08-17 01:45:23 -07:00
Yueguie He
2b52a4a550 dts: change system partition size
PD#149409: dts: change system partition size

Change-Id: I163b8f09705e3cd81211cfe790e7ef9997ae21dc
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
2017-08-17 14:12:17 +08:00
Tellen Yu
1c39e10fd2 dts: add dhd_static_buf for p230 [1/1]
PD#146107: dts: add dhd_static_buf for gxl p230.

Change-Id: Ic54abfc97bdae8cdce184aa6562bcbc577f05f74
Signed-off-by: Tellen Yu <tellen.yu@amlogic.com>
2017-08-16 03:42:06 -07:00
Ao Xu
6bc0a9c826 pstore: add CONFIG_PSTORE_PMSG, add dts node in gxl_p212_2g.dts
PD#149300: pstore: add CONFIG_PSTORE_PMSG, add dts node in gxl_p212_2g.dts

Change-Id: I4407180bcde350fe4204380dacc9c8450ce254e0
Signed-off-by: Ao Xu <ao.xu@amlogic.com>
2017-08-16 01:08:09 -07:00
Yueguie He
46512725de ddr: fix ddr window drvir error
PD#149154: ddr: fix ddr window error

Change-Id: Icf3f63e96950a28f0ae30ce7fa470c397bef6495
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
2017-08-16 14:57:16 +08:00
Xindong Xu
f9a4685120 dts: p230: add cma heap for ion [1/1]
PD#146107: dts: p230: add cma heap for ion on Android 8.0

Change-Id: I37614c6d7417da9bf686295147739ad1d7ed1ef4
Signed-off-by: Xindong Xu <xindong.xu@amlogic.com>
2017-08-15 23:06:25 -07:00
Tao Zeng
c662cf28e5 cec: fix rcu stall by bad usage of spinlock
PD#149212: cec: fix rcu stall by spinlock

Using irqsave/irqrestore API to prevent rcu stall by spinlock

Change-Id: Ia960864e1f9b21f11c1f9656da2c0efbf221a8ac
Signed-off-by: Tao Zeng <tao.zeng@amlogic.com>
2017-08-15 22:44:30 -07:00
Yi Zhou
3209f568ba hdmitx: using BL31 cmd to access hdmi reg
PD#149289: using BL31 cmd to access hdmi reg

1.hdmitx register may be accessed by kernel, bl30, bl31, etc...
To avoid concurrence issue, all should be only one port to access
hdmitx registers.Uniform kernel access to bl31.

2.optimize hdmitx driver style.

Change-Id: Ie5ae4b8bb8a641ccd39375b9addf9a8b01dcf464
Signed-off-by: Yi Zhou <yi.zhou@amlogic.com>
2017-08-15 13:51:28 +08:00
Yi Zeng
040673128e nand: add a new nand flash "TC58NVG2S0HBAI6" for SU customer
PD#149218: nand: add a new nand flash "TC58NVG2S0HBAI6" for SU customer

Change-Id: I06b832365db629bd4c46fa6b6fa6ab4656267602
Signed-off-by: Yi Zeng <“yi.zeng@amlogic.com”>
2017-08-14 04:40:27 -07:00
Shuai Li
430f796afb audio: modify lanemask for tdmout
PD#149114: S420 V03 speaker no sound when playing 2-ch wav

S400 & S420 modify the lineout and speaker out on TDMC dataIO2.
This commit make the speaker output available
by the output lanemask setting:

    "dai-tdm-lane-slot-mask-out = <0 0 1 0>;"

It masks the third lane as data output when playing two channel
PCM waves.

Change-Id: Id1627c06f24f3fb57cc645247ca8183f197656db
Signed-off-by: Shuai Li <shuai.li@amlogic.com>
2017-08-14 00:29:22 -07:00
Victor Wan
5772a3ba4f Merge branch 'android-4.9' into amlogic-4.9-dev 2017-08-14 15:24:11 +08:00
Jianxin Pan
142a9f2ac2 Merge "audio: modified tlv320adc3101 to support multi config through amixer" into amlogic-4.9-dev 2017-08-13 23:37:53 -07:00
Peipeng Zhao
1138038c9d audio: modified tlv320adc3101 to support multi config through amixer
PD#149164: modified codec tlv320adc3101 to support multi config through
amixer

Change-Id: I8c679a2ef6b977efd84d3951fa6d0012a5c8af50
Signed-off-by: Peipeng Zhao <peipeng.zhao@amlogic.com>
2017-08-13 23:30:35 -07:00
Yueguie He
d0e4cb076c dts: add s420 128m dts
PD#148955: dts: support 128m ddr, when enable SecurOs:setenv initrd_high
0x04000000

Change-Id: If59c049a3cd5af9ba9d15f2fca63a5e3df672e1d
Signed-off-by: Yueguie He <yuegui.he@amlogic.com>
2017-08-13 21:33:26 -07:00
Nan Li
fa3d073d09 emmc: clear line_dly on calibration
PD#148637: clear line_delay on every line calibration,
so any line's line_delay will not interfere with each other.

Change-Id: I784f66ab9df111b886ab0e45fa007f3bb2dc111e
Signed-off-by: Nan Li <nan.li@amlogic.com>
2017-08-13 19:50:59 -07:00
Long Yu
3863e6688f emmc: optimizing emmc hs400 timing process
PD#148082: emmc: optimizing emmc hs400 timing process

Change-Id: I0318dec3e0c89eef3a396b157ada97b2ef768f7f
Signed-off-by: Long Yu <long.yu@amlogic.com>
2017-08-13 19:24:16 -07:00
Jiamin Ma
1f6c26741a secure_monitor: use reserve mem from secure os
PD#148390: add nandkey and secure storage

the reserve mem used by secure monitor comes form secure os.
we should not redefine it in DTS

Change-Id: If42f2410474e090ed5b2bca143d5a9d16260f49c
Signed-off-by: Jiamin Ma <jiamin.ma@amlogic.com>
2017-08-12 17:33:21 +08:00
Greg Kroah-Hartman
02f29ab1b9 Merge 4.9.42 into android-4.9
Changes in 4.9.42
	parisc: Handle vma's whose context is not current in flush_cache_range
	cgroup: create dfl_root files on subsys registration
	cgroup: fix error return value from cgroup_subtree_control()
	libata: array underflow in ata_find_dev()
	workqueue: restore WQ_UNBOUND/max_active==1 to be ordered
	iwlwifi: dvm: prevent an out of bounds access
	brcmfmac: fix memleak due to calling brcmf_sdiod_sgtable_alloc() twice
	NFSv4: Fix EXCHANGE_ID corrupt verifier issue
	mmc: sdhci-of-at91: force card detect value for non removable devices
	device property: Make dev_fwnode() public
	mmc: core: Fix access to HS400-ES devices
	mm, mprotect: flush TLB if potentially racing with a parallel reclaim leaving stale TLB entries
	cpuset: fix a deadlock due to incomplete patching of cpusets_enabled()
	ALSA: hda - Fix speaker output from VAIO VPCL14M1R
	drm/amdgpu: Fix undue fallthroughs in golden registers initialization
	ASoC: do not close shared backend dailink
	KVM: async_pf: make rcu irq exit if not triggered from idle task
	mm/page_alloc: Remove kernel address exposure in free_reserved_area()
	timers: Fix overflow in get_next_timer_interrupt
	powerpc/tm: Fix saving of TM SPRs in core dump
	powerpc/64: Fix __check_irq_replay missing decrementer interrupt
	iommu/amd: Enable ga_log_intr when enabling guest_mode
	gpiolib: skip unwanted events, don't convert them to opposite edge
	ext4: fix SEEK_HOLE/SEEK_DATA for blocksize < pagesize
	ext4: fix overflow caused by missing cast in ext4_resize_fs()
	ARM: dts: armada-38x: Fix irq type for pca955
	ARM: dts: tango4: Request RGMII RX and TX clock delays
	media: platform: davinci: return -EINVAL for VPFE_CMD_S_CCDC_RAW_PARAMS ioctl
	iscsi-target: Fix initial login PDU asynchronous socket close OOPs
	mmc: dw_mmc: Use device_property_read instead of of_property_read
	mmc: core: Use device_property_read instead of of_property_read
	media: lirc: LIRC_GET_REC_RESOLUTION should return microseconds
	f2fs: sanity check checkpoint segno and blkoff
	Btrfs: fix early ENOSPC due to delalloc
	saa7164: fix double fetch PCIe access condition
	tcp_bbr: cut pacing rate only if filled pipe
	tcp_bbr: introduce bbr_bw_to_pacing_rate() helper
	tcp_bbr: introduce bbr_init_pacing_rate_from_rtt() helper
	tcp_bbr: remove sk_pacing_rate=0 transient during init
	tcp_bbr: init pacing rate on first RTT sample
	ipv4: ipv6: initialize treq->txhash in cookie_v[46]_check()
	net: Zero terminate ifr_name in dev_ifname().
	ipv6: avoid overflow of offset in ip6_find_1stfragopt
	net: dsa: b53: Add missing ARL entries for BCM53125
	ipv4: initialize fib_trie prior to register_netdev_notifier call.
	rtnetlink: allocate more memory for dev_set_mac_address()
	mcs7780: Fix initialization when CONFIG_VMAP_STACK is enabled
	openvswitch: fix potential out of bound access in parse_ct
	packet: fix use-after-free in prb_retire_rx_blk_timer_expired()
	ipv6: Don't increase IPSTATS_MIB_FRAGFAILS twice in ip6_fragment()
	net: ethernet: nb8800: Handle all 4 RGMII modes identically
	dccp: fix a memleak that dccp_ipv6 doesn't put reqsk properly
	dccp: fix a memleak that dccp_ipv4 doesn't put reqsk properly
	dccp: fix a memleak for dccp_feat_init err process
	sctp: don't dereference ptr before leaving _sctp_walk_{params, errors}()
	sctp: fix the check for _sctp_walk_params and _sctp_walk_errors
	net/mlx5: Consider tx_enabled in all modes on remap
	net/mlx5: Fix command bad flow on command entry allocation failure
	net/mlx5e: Fix outer_header_zero() check size
	net/mlx5e: Fix wrong delay calculation for overflow check scheduling
	net/mlx5e: Schedule overflow check work to mlx5e workqueue
	net: phy: Correctly process PHY_HALTED in phy_stop_machine()
	xen-netback: correctly schedule rate-limited queues
	sparc64: Measure receiver forward progress to avoid send mondo timeout
	sparc64: Fix exception handling in UltraSPARC-III memcpy.
	wext: handle NULL extra data in iwe_stream_add_point better
	sh_eth: fix EESIPR values for SH77{34|63}
	sh_eth: R8A7740 supports packet shecksumming
	net: phy: dp83867: fix irq generation
	tg3: Fix race condition in tg3_get_stats64().
	x86/boot: Add missing declaration of string functions
	spi: spi-axi: Free resources on error path
	ASoC: rt5645: set sel_i2s_pre_div1 to 2
	netfilter: use fwmark_reflect in nf_send_reset
	phy state machine: failsafe leave invalid RUNNING state
	ipv4: make tcp_notsent_lowat sysctl knob behave as true unsigned int
	clk/samsung: exynos542x: mark some clocks as critical
	scsi: qla2xxx: Get mutex lock before checking optrom_state
	drm/virtio: fix framebuffer sparse warning
	ARM: dts: sun8i: Support DTB build for NanoPi M1
	ARM: dts: sunxi: Change node name for pwrseq pin on Olinuxino-lime2-emmc
	iw_cxgb4: do not send RX_DATA_ACK CPLs after close/abort
	nbd: blk_mq_init_queue returns an error code on failure, not NULL
	virtio_blk: fix panic in initialization error path
	ARM: 8632/1: ftrace: fix syscall name matching
	mm, slab: make sure that KMALLOC_MAX_SIZE will fit into MAX_ORDER
	lib/Kconfig.debug: fix frv build failure
	signal: protect SIGNAL_UNKILLABLE from unintentional clearing.
	mm: don't dereference struct page fields of invalid pages
	net/mlx5: E-Switch, Re-enable RoCE on mode change only after FDB destroy
	ipv4: Should use consistent conditional judgement for ip fragment in __ip_append_data and ip_finish_output
	net: account for current skb length when deciding about UFO
	net: phy: Fix PHY unbind crash
	workqueue: implicit ordered attribute should be overridable
	Linux 4.9.42

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2017-08-11 13:55:02 -07:00
Greg Kroah-Hartman
4c666b0d90 Linux 4.9.42 2017-08-11 08:49:50 -07:00
Tejun Heo
f9636c9bdd workqueue: implicit ordered attribute should be overridable
commit 0a94efb5ac upstream.

5c0338c687 ("workqueue: restore WQ_UNBOUND/max_active==1 to be
ordered") automatically enabled ordered attribute for unbound
workqueues w/ max_active == 1.  Because ordered workqueues reject
max_active and some attribute changes, this implicit ordered mode
broke cases where the user creates an unbound workqueue w/ max_active
== 1 and later explicitly changes the related attributes.

This patch distinguishes explicit and implicit ordered setting and
overrides from attribute changes if implict.

Signed-off-by: Tejun Heo <tj@kernel.org>
Fixes: 5c0338c687 ("workqueue: restore WQ_UNBOUND/max_active==1 to be ordered")
Cc: Holger Hoffstätte <holger@applied-asynchrony.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-08-11 08:49:37 -07:00
Florian Fainelli
c3c9471685 net: phy: Fix PHY unbind crash
commit 7b9a88a390 upstream.

The PHY library does not deal very well with bind and unbind events. The first
thing we would see is that we were not properly canceling the PHY state machine
workqueue, so we would be crashing while dereferencing phydev->drv since there
is no driver attached anymore.

Suggested-by: Russell King <rmk+kernel@armlinux.org.uk>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Cc: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-08-11 08:49:37 -07:00
Michal Kubeček
ef09c9ff34 net: account for current skb length when deciding about UFO
[ Upstream commit a5cb659bbc ]

Our customer encountered stuck NFS writes for blocks starting at specific
offsets w.r.t. page boundary caused by networking stack sending packets via
UFO enabled device with wrong checksum. The problem can be reproduced by
composing a long UDP datagram from multiple parts using MSG_MORE flag:

  sendto(sd, buff, 1000, MSG_MORE, ...);
  sendto(sd, buff, 1000, MSG_MORE, ...);
  sendto(sd, buff, 3000, 0, ...);

Assume this packet is to be routed via a device with MTU 1500 and
NETIF_F_UFO enabled. When second sendto() gets into __ip_append_data(),
this condition is tested (among others) to decide whether to call
ip_ufo_append_data():

  ((length + fragheaderlen) > mtu) || (skb && skb_is_gso(skb))

At the moment, we already have skb with 1028 bytes of data which is not
marked for GSO so that the test is false (fragheaderlen is usually 20).
Thus we append second 1000 bytes to this skb without invoking UFO. Third
sendto(), however, has sufficient length to trigger the UFO path so that we
end up with non-UFO skb followed by a UFO one. Later on, udp_send_skb()
uses udp_csum() to calculate the checksum but that assumes all fragments
have correct checksum in skb->csum which is not true for UFO fragments.

When checking against MTU, we need to add skb->len to length of new segment
if we already have a partially filled skb and fragheaderlen only if there
isn't one.

In the IPv6 case, skb can only be null if this is the first segment so that
we have to use headersize (length of the first IPv6 header) rather than
fragheaderlen (length of IPv6 header of further fragments) for skb == NULL.

Fixes: e89e9cf539 ("[IPv4/IPv6]: UFO Scatter-gather approach")
Fixes: e4c5e13aa4 ("ipv6: Should use consistent conditional judgement for
	ip6 fragment between __ip6_append_data and ip6_finish_output")
Signed-off-by: Michal Kubecek <mkubecek@suse.cz>
Acked-by: Vlad Yasevich <vyasevic@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-08-11 08:49:37 -07:00