Commit Graph

603662 Commits

Author SHA1 Message Date
Felipe Balbi
c8130087ff usb: dwc3: replace %p with %pK
commit 04fb365c45 upstream.

%p will leak kernel pointers, so let's not expose the information on
dmesg and instead use %pK. %pK will only show the actual addresses if
explicitly enabled under /proc/sys/kernel/kptr_restrict.

Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:45 +02:00
Gerd Hoffmann
a080ec466c drm/virtio: don't leak bo on drm_gem_object_init failure
commit 385aee965b upstream.

Reported-by: 李强 <liqiang6-s@360.cn>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Link: http://patchwork.freedesktop.org/patch/msgid/20170406155941.458-1-kraxel@redhat.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:45 +02:00
Sabrina Dubroca
fe0bb2ac16 tracing/kprobes: Allow to create probe with a module name starting with a digit
commit 9e52b32567 upstream.

Always try to parse an address, since kstrtoul() will safely fail when
given a symbol as input. If that fails (which will be the case for a
symbol), try to parse a symbol instead.

This allows creating a probe such as:

    p:probe/vlan_gro_receive 8021q:vlan_gro_receive+0

Which is necessary for this command to work:

    perf probe -m 8021q -a vlan_gro_receive

Link: http://lkml.kernel.org/r/fd72d666f45b114e2c5b9cf7e27b91de1ec966f1.1498122881.git.sd@queasysnail.net

Fixes: 413d37d1e ("tracing: Add kprobe-based event tracer")
Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:45 +02:00
Vlastimil Babka
78f20db864 mm: fix classzone_idx underflow in shrink_zones()
[Not upstream as that would take 34+ patches]

We've got reported a BUG in do_try_to_free_pages():

BUG: unable to handle kernel paging request at ffff8ffffff28990
IP: [<ffffffff8119abe0>] do_try_to_free_pages+0x140/0x490
PGD 0
Oops: 0000 [#1] SMP
megaraid_sas sg scsi_mod efivarfs autofs4
Supported: No, Unsupported modules are loaded
Workqueue: kacpi_hotplug acpi_hotplug_work_fn
task: ffff88ffd0d4c540 ti: ffff88ffd0e48000 task.ti: ffff88ffd0e48000
RIP: 0010:[<ffffffff8119abe0>]  [<ffffffff8119abe0>] do_try_to_free_pages+0x140/0x490
RSP: 0018:ffff88ffd0e4ba60  EFLAGS: 00010206
RAX: 000006fffffff900 RBX: 00000000ffffffff RCX: ffff88fffff29000
RDX: 000000ffffffff00 RSI: 0000000000000003 RDI: 00000000024200c8
RBP: 0000000001320122 R08: 0000000000000000 R09: ffff88ffd0e4bbac
R10: 0000000000000000 R11: 0000000000000000 R12: ffff88ffd0e4bae0
R13: 0000000000000e00 R14: ffff88fffff2a500 R15: ffff88fffff2b300
FS:  0000000000000000(0000) GS:ffff88ffe6440000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffff8ffffff28990 CR3: 0000000001c0a000 CR4: 00000000003406e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Stack:
 00000002db570a80 024200c80000001e ffff88fffff2b300 0000000000000000
 ffff88fffffd5700 ffff88ffd0d4c540 ffff88ffd0d4c540 ffffffff0000000c
 0000000000000000 0000000000000040 00000000024200c8 ffff88ffd0e4bae0
Call Trace:
 [<ffffffff8119afea>] try_to_free_pages+0xba/0x170
 [<ffffffff8118cf2f>] __alloc_pages_nodemask+0x53f/0xb20
 [<ffffffff811d39ff>] alloc_pages_current+0x7f/0x100
 [<ffffffff811e2232>] migrate_pages+0x202/0x710
 [<ffffffff815dadaa>] __offline_pages.constprop.23+0x4ba/0x790
 [<ffffffff81463263>] memory_subsys_offline+0x43/0x70
 [<ffffffff8144cbed>] device_offline+0x7d/0xa0
 [<ffffffff81392fa2>] acpi_bus_offline+0xa5/0xef
 [<ffffffff81394a77>] acpi_device_hotplug+0x21b/0x41f
 [<ffffffff8138dab7>] acpi_hotplug_work_fn+0x1a/0x23
 [<ffffffff81093cee>] process_one_work+0x14e/0x410
 [<ffffffff81094546>] worker_thread+0x116/0x490
 [<ffffffff810999ed>] kthread+0xbd/0xe0
 [<ffffffff815e4e7f>] ret_from_fork+0x3f/0x70

This translates to the loop in shrink_zone():

classzone_idx = requested_highidx;
while (!populated_zone(zone->zone_pgdat->node_zones +
					classzone_idx))
	classzone_idx--;

where no zone is populated, so classzone_idx becomes -1 (in RBX).

Added debugging output reveals that we enter the function with
sc->gfp_mask == GFP_NOFS|__GFP_NOFAIL|__GFP_HARDWALL|__GFP_MOVABLE
requested_highidx = gfp_zone(sc->gfp_mask) == 2 (ZONE_NORMAL)

Inside the for loop, however:
gfp_zone(sc->gfp_mask) == 3 (ZONE_MOVABLE)

This means we have gone through this branch:

if (buffer_heads_over_limit)
    sc->gfp_mask |= __GFP_HIGHMEM;

This changes the gfp_zone() result, but requested_highidx remains unchanged.
On nodes where the only populated zone is movable, the inner while loop will
check only lower zones, which are not populated, and underflow classzone_idx.

To sum up, the bug occurs in configurations with ZONE_MOVABLE (such as when
booted with the movable_node parameter) and only in situations when
buffer_heads_over_limit is true, and there's an allocation with __GFP_MOVABLE
and without __GFP_HIGHMEM performing direct reclaim.

This patch makes sure that classzone_idx starts with the correct zone.

Mainline has been affected in versions 4.6 and 4.7, but the culprit commit has
been also included in stable trees.
In mainline, this has been fixed accidentally as part of 34-patch series (plus
follow-up fixes) "Move LRU page reclaim from zones to nodes", which makes the
mainline commit unsuitable for stable backport, unfortunately.

Fixes: 7bf52fb891 ("mm: vmscan: reclaim highmem zone if buffer_heads is over limit")
Obsoleted-by: b2e18757f2 ("mm, vmscan: begin reclaiming pages on a per-node basis")
Debugged-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Mel Gorman <mgorman@techsingularity.net>
Acked-by: Michal Hocko <mhocko@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:44 +02:00
Rafał Miłecki
1f97e170cf bgmac: reset & enable Ethernet core before using it
commit b4dfd8e929 upstream.

This fixes Ethernet on D-Link DIR-885L with BCM47094 SoC. Felix reported
similar fix was needed for his BCM4709 device (Buffalo WXR-1900DHP?).
I tested this for regressions on BCM4706, BCM4708A0 and BCM47081A0.

Cc: Felix Fietkau <nbd@openwrt.org>
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:44 +02:00
Adrian Salido
c01ace719e driver core: platform: fix race condition with driver_override
commit 6265539776 upstream.

The driver_override implementation is susceptible to race condition when
different threads are reading vs storing a different driver override.
Add locking to avoid race condition.

Fixes: 3d713e0e38 ("driver core: platform: add device binding path 'driver_override'")
Cc: stable@vger.kernel.org
Signed-off-by: Adrian Salido <salidoa@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:44 +02:00
Christoph Hellwig
4043d5bca5 fs: completely ignore unknown open flags
commit 629e014bb8 upstream.

Currently we just stash anything we got into file->f_flags, and the
report it in fcntl(F_GETFD).  This patch just clears out all unknown
flags so that we don't pass them to the fs or report them.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:44 +02:00
Christoph Hellwig
ccb973e681 fs: add a VALID_OPEN_FLAGS
commit 80f18379a7 upstream.

Add a central define for all valid open flags, and use it in the uniqueness
check.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-07-15 11:57:44 +02:00
lanshh
ff9ce5a7ba hid: rkvr: fix application of sizeof to pointer
Change-Id: I698445dd006551090578fc04226d5c792094ad05
Signed-off-by: lanshh <lsh@rock-chips.com>
2017-07-14 11:41:10 +08:00
David Wu
9f21286cea arm64: dts: rockchip: Add rk3366-sheep and rk3366-android dts file for Android7.1
Change-Id: Ib0f2dd27cb5154bed68e71780cfff4a1730399a3
Signed-off-by: David Wu <david.wu@rock-chips.com>
2017-07-14 11:13:54 +08:00
David Wu
1f8e2ba8d4 arm64: dts: rockchip: Add drm dispaly nodes and move nod-drm display nodes to rk3366-android-6.0.dtsi
Change-Id: I98cafab3739f322e1b3826e597b7191ddd0e49c3
Signed-off-by: David Wu <david.wu@rock-chips.com>
2017-07-14 10:31:41 +08:00
Zhangbin Tong
6ed6da842c arm64: dts: rockchip: rk3368-r88: Fix power and platform suspend support
Change-Id: I9b3d8178a3bf245cad91dec3c1284f395378ff68
Signed-off-by: Zhangbin Tong <zebulun.tong@rock-chips.com>
2017-07-14 10:28:10 +08:00
Huang, Tao
bdc986dd0b regulator: remove unused rockchip-pwm-regulator driver
Change-Id: I20594d198f49f6232b409031884ca27f95470592
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2017-07-14 10:16:41 +08:00
Huang, Tao
d53614fe83 PM / devfreq: rockchip_dmc: fix coccinelle warnings
drivers/devfreq/rockchip_dmc.c:665:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:676:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:686:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:697:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:707:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:766:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:776:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:1397:2-3: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:1022:3-4: Unneeded semicolon
drivers/devfreq/rockchip_dmc.c:662:5-11: inconsistent IS_ERR and PTR_ERR on line 664.
drivers/devfreq/rockchip_dmc.c:683:5-11: inconsistent IS_ERR and PTR_ERR on line 685.
drivers/devfreq/rockchip_dmc.c:704:5-11: inconsistent IS_ERR and PTR_ERR on line 706.
drivers/devfreq/rockchip_dmc.c:773:5-11: inconsistent IS_ERR and PTR_ERR on line 775.

Change-Id: I95f2f66649ead3d0c0f59ae713d9272863eb9f63
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
2017-07-14 09:38:44 +08:00
Mark Yao
85cc5b07aa drm/rockchip: gem: add begin/end cpu access
Change-Id: Ie2c54addcf037cf501edcad76470e5e46c667b7e
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-07-13 18:40:17 +08:00
Mark Yao
c6036ecd26 drm/prime: add dmabuf begin/end cpu access
Change-Id: I0b4be7f8d78142024a2067db041e4f1c2670086c
Signed-off-by: Mark Yao <mark.yao@rock-chips.com>
2017-07-13 18:40:13 +08:00
Finley Xiao
631fd486de ARM: dts: rk3288-android: add 1800MHz for cpu
Change-Id: I9206739d879b7648ae4e19df9f5a67ad9844c5d6
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-07-13 15:30:22 +08:00
Finley Xiao
6600132da6 clk: rockchip: Add adaptive frequency scaling for pll_rk3399
Change-Id: Id7be0fd4045f273052d69f49df1272922fb8f8dc
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-07-13 14:21:30 +08:00
algea.cao
8e8c0e3f49 Revert "ARM64: dts: rk3328-evb: enable tve"
This reverts commit c69d61610a.
There is conflict between cvbs and hdmi.Hdmi is used more than cvbs,
so disable cvbs by default.

Change-Id: I1c0966e0166715da0d4c11426686b28386d16a0c
Signed-off-by: algea.cao <algea.cao@rock-chips.com>
2017-07-13 11:41:24 +08:00
Feng Mingli
1246a265e1 usb: dwc_otg_310: hcd: fix isoc urb actual length
USB isochronous urb consists of some isoc frames, urb use iso_frame_desc
structure record actual_length, then device drivers always use this and
don't care urb actual_length. But in usb devio driver, processcompl()
function will process urb complete and copy data to user depend on urb
actual_length.

In dwc controller driver, update_isoc_urb_state() function will only
update isoc frames actual_length, urb actual_length will be 0. When use
usb devio driver, there is no data copy to user, so need update urb
actual_length at the same time.

TEST=use libusb to transport isochronous data

Change-Id: I1dc8e8d8c6609924626761525b98f41a739aeb65
Signed-off-by: Feng Mingli <fml@rock-chips.com>
Signed-off-by: William Wu <william.wu@rock-chips.com>
2017-07-13 11:40:26 +08:00
zhangyunlong
6ce1035676 camera: rockchip: camsys_drv: 0.0x22.0x2
modify the condition of DRM iommu, which makes code  more readable
by using of_parse_phandle to check whether the "iommus" phandle exists
in the isp device node.

Change-Id: I41d2c1c1e237364f19d79abb15aaca4a81616287
Signed-off-by: zhangyunlong <dalon.zhang@rock-chips.com>
2017-07-13 11:40:01 +08:00
Jacob Chen
67e6174224 arm64: rockchip_linux_defconfig: enable CIF_ISP10
Change-Id: I2e677e3b80b6ba065543ab0123e8154cf7d794a3
Signed-off-by: Jacob Chen <cc@rock-chips.com>
2017-07-13 11:34:24 +08:00
Jacob Chen
c8a58c7fa9 arm64: dts: rk3399-sapphire-excavator-linux: add camera nodes
Change-Id: I7f2e356f33439723a9ebec6fd341e213ebb2c871
Signed-off-by: Jacob Chen <cc@rock-chips.com>
2017-07-13 11:34:02 +08:00
Jacob Chen
6544f168ac arm64: dts: rk3399-linux: add cif isp nodes
Change-Id: Iaadc9bcfdf7b2a236a0740170cc7bcfa0e7d9398
Signed-off-by: Jacob Chen <cc@rock-chips.com>
2017-07-13 11:33:47 +08:00
Jacob Chen
f08082651f media: isp: migrate isp driver to videobuf2
Verify the functionality of isp driver with
sensor ov7750.
V4l2n or gstreamer is suitable for test.

Change-Id: I4f0cf68b84f4909dd1c132ec3506777f39d487ee
Signed-off-by: Jacob Chen <cc@rock-chips.com>
2017-07-13 11:33:10 +08:00
Jacob Chen
4ec2b40809 media: soc_camera: add ov7750 sensor driver
Change-Id: Ibe6e393b5e1ce518181d285b5c08e191a0b2dca4
Signed-off-by: Jacob Chen <cc@rock-chips.com>
2017-07-13 11:32:49 +08:00
Finley Xiao
c047ef0f37 ARM: dts: rk3288: add leakage nvmem-cells property for cpu
Change-Id: I0238f29b0c79daa683ffd8a2a1f09f51761a5358
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-07-13 10:54:18 +08:00
Finley Xiao
1e186471ad arm64: dts: rk3399: add leakage nvmem-cells properties for cpu
Change-Id: Id156f2a9a3871747d9379b49d09034238d204670
Signed-off-by: Finley Xiao <finley.xiao@rock-chips.com>
2017-07-13 10:34:07 +08:00
WeiYong Bi
9de84324a2 phy: rockchip-inno-mipi-dphy: Add support for rk3366
Change-Id: I1e0898b8b588bf71df9a0e1f848f350654446dcf
Signed-off-by: WeiYong Bi <bivvy.bi@rock-chips.com>
2017-07-13 09:50:34 +08:00
WeiYong Bi
8e803e4c34 drm/rockchip: dsi: Add support for rk3366
Change-Id: I9edfea9652d8c56065590ea01480b49f1c432145
Signed-off-by: WeiYong Bi <bivvy.bi@rock-chips.com>
2017-07-13 09:50:30 +08:00
Vaishali Thakkar
f28f47028e UPSTREAM: Coccinelle: misc: Add support for devm variant in all modes
Add missing support for the devm_request_threaded_irq in
the rules of context, report and org modes.

Misc:
----
To be consistent with other scripts, change confidence level
of the script to 'Moderate'.

Change-Id: I3ad8fc93081be82512e6143e27c8936c988a98f1
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit d1e774f49f)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
549be08e4c UPSTREAM: Coccinelle: misc: Improve the result given by context mode
To eliminate false positives given by the context mode, add
necessary arguments for the function request_threaded_irq.

Change-Id: I692db266239a03964d17505108e700bc1ffa9bd3
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 35b303ae36)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
fd779ebca7 UPSTREAM: Coccinelle: misc: Improve the matching of rules
Currently because of the left associativity of the operators, pattern
IRQF_ONESHOT | flags does not match with the pattern when we have more
than one flag after the disjunction. This eventually results in giving
false positives by the script. This patch eliminates these FPs by
improving the rule.

Change-Id: I1043d1e6fca848997982305cd8fb3ac2706e7f1f
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit dca24c4544)
2017-07-12 21:17:10 +08:00
Andrew F. Davis
d274d003e3 UPSTREAM: Coccinelle: Add misc/boolconv.cocci
Add a script to check for unneeded conversions to bool.

Change-Id: I881d423eb72595b11a861eaf01c0c8eb8f262e05
Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 75238b9e6a)
2017-07-12 21:17:10 +08:00
Nicholas Mc Guire
38ceb6a5d2 UPSTREAM: Coccinelle: flag conditions with no effect
Report code constructs where the if and else branch are functionally
identical. In cases where this is intended it really should be
documented - most reported cases probably are bugs.

Change-Id: I81c863f2a744d26dd1f0cd0b621580f73d0c70d5
Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit c8990359d4)
2017-07-12 21:17:10 +08:00
Julia Lawall
907e4f6c97 UPSTREAM: Coccinelle: pm_runtime: ensure relevance of pm_runtime reports
pm_runtime.cocci starts with one rule that searches for a variety of
functions calls, followed by various rules that report errors.  Previously,
the only connection between the first rule and the rest was to check that
the first rule had matched somewhere.  Change the rules to propagate a
position from the first rule to the others, to make sure that the sites
reported on are the same as the sites that were identified as having the
relevant functions.

Change-Id: I2f5c56634f170348666acb373f7b9323c8edf68e
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit d97629f168)
2017-07-12 21:17:10 +08:00
Julia Lawall
49818c240e UPSTREAM: Coccinelle: limit memdup_user transformation to GFP_KERNEL case
Memdup_user encapsulates a memory allocation with the flag GFP_KERNEL, so
only allow this flag in the original code.

Change-Id: I504d5558ef6bfa955983523918397872494b1abc
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 43d96390d5)
2017-07-12 21:17:10 +08:00
Luis R. Rodriguez
fed2eddfd5 UPSTREAM: scripts/coccinelle: require coccinelle >= 1.0.4 on device_node_continue.cocci
Make use of the new Requires: tag to be able to specify coccinelle binary
version requirements. The cocci file device_node_continue.cocci requires at
least coccinelle 1.0.4.

Change-Id: I11e894e3b2cbd88362271ea064ec3674ae9ffd71
Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Acked-by: Nicolas Palix <nicolas.palix@imag.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit cc65e82336)
2017-07-12 21:17:10 +08:00
Yann Droneaud
d3dd61f590 UPSTREAM: coccinelle: catch krealloc() on devm_*() allocated memory
krealloc() must not be used against devm_*() allocated
memory regions:

- if a bigger memory is to be allocated, krealloc() and
  __krealloc() could return a different pointer than the
  one given to them, creating a memory region which is not
  managed, thus it will not be automatically released on
  device removal.

- if a bigger memory is to be allocated, krealloc() could
  kfree() the managed memory region which is passed to it.
  The old pointer is left registered as a resource for the
  device. On device removal, this dangling pointer will be
  used and an unrelated memory region could be released.

- if the requested size is equal to 0, krealloc() can also
  just behave like kfree(). Here too, the old pointer is
  kept associated with the device. On device removal, this
  invalid pointer will be used and an unrelated memory
  region could be released.

For all these reasons, krealloc() must not be used on a
pointer returned by devm_*() functions.

Change-Id: I36061f5668a1b1128df9414b577150281f0f8a5a
Cc: Tejun Heo <tj@kernel.org>
Cc: Pekka Enberg <penberg@cs.helsinki.fi>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit b7b2ee41f3)
2017-07-12 21:17:10 +08:00
Yann Droneaud
8ecb0a075b UPSTREAM: coccinelle: recognize more devm_* memory allocation functions
Updates free/devm_free.cocci to recognize functions added by:

- commit 64c862a839 ('devres: add kernel standard devm_k.alloc functions')
- commit e31108cad3 ('devres: introduce API "devm_kstrdup"')
- commit 3046365bb4 ('devres: introduce API "devm_kmemdup')
- commit 43339bed70 ('devres: Add devm_get_free_pages API')
- commit 75f2a4ead5 ('devres: Add devm_kasprintf and devm_kvasprintf API')

See also Documentation/driver-model/devres.txt

Change-Id: I5224960b028811484f27dd174629df6d5b052cd3
Cc: Joe Perches <joe@perches.com>
Cc: Manish Badarkhe <badarkhe.manish@gmail.com>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Eli Billauer <eli.billauer@gmail.com>
Cc: Himangi Saraogi <himangi774@gmail.com>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Wolfram Sang <w.sang@pengutronix.de>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit a720c0644d)
2017-07-12 21:17:10 +08:00
Yann Droneaud
8b5b2895d7 UPSTREAM: coccinelle: also catch kzfree() issues
Since commit 3ef0e5ba46 ('slab: introduce kzfree()'),
kfree() is no more the only function to be considered:
kzfree() should be recognized too.

In particular, kzfree() must not be called on memory
allocated through devm_*() functions.

Change-Id: I9cde2ad48245c628c6708ab008e0513945a04cef
Cc: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Yann Droneaud <ydroneaud@opteya.com>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 6dd9379e8f)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
24b3eaac3a UPSTREAM: Coccinelle: noderef: Add new rules and correct the old rule
Add new rules to detect the cases where sizeof is used in
function calls as a argument.

Also, for the patch mode third rule should behave same as
second rule with arguments reversed. So, change that as well.

Change-Id: Id50b413c43d1c7f8c17a8cd784aa4d9d90046e62
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit bf56cc04ef)
2017-07-12 21:17:10 +08:00
Wolfram Sang
265269d9da UPSTREAM: scripts: coccinelle: remove check to move constants to right
The header mentions this check depends on personal taste. I agree.
Running coccicheck on patches before I apply them, this SmPL produced
enough false positives for me that I'd rather see it removed.

Change-Id: Ia9638b059dd9eedb5f266061ae61ede963870acd
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit f931362b38)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
988bd2d239 UPSTREAM: Coccinelle: setup_timer: Add space in front of parentheses
Add space in front of the offending parentheses to silent the
parse error for older Coccinelle versions. This makes the rule
usable with all Coccinelle versions.

Change-Id: I44060c14a88fa322ac609474cc9b03b0856d5dab
Reported-by: Nishanth Menon <nm@ti.com>
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Fixes: c5eda8fd10 ("Coccinelle: Add api/setup_timer.cocci")
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 531f50388f)
2017-07-12 21:17:10 +08:00
Vaishali Thakkar
78fe547da4 UPSTREAM: Coccinelle: Add api/setup_timer.cocci
Use the timer API function setup_timer instead of structure field
assignments to initialize a timer.

Change-Id: I18ecc8a8ac368b893f0ceab9ad41add255bc3cd5
Signed-off-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit c5eda8fd10)
2017-07-12 21:17:10 +08:00
Julia Lawall
0d906e763c UPSTREAM: coccinelle: bugon: reduce rule applicability
Rule r is only use in org or report mode, so only execute it in those
cases.

Change-Id: If04125246bc21159b37d41c67a5b2556ec8ede3a
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit f75621c6ec)
2017-07-12 21:17:10 +08:00
Julia Lawall
60c3b34419 UPSTREAM: Coccinelle: pm_runtime: reduce rule applicability
Rule r is only used in org or report mode, so only execute it in those
cases.

Change-Id: Ib2311a33fca6544b885bbf44b9695e1984680f96
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 79ff2b3dea)
2017-07-12 21:17:10 +08:00
Julia Lawall
a6a3fd8095 UPSTREAM: Coccinelle: array_size: reduce rule applicability
Rule r is only use in org or report mode, so only execute it in those
cases.

Change-Id: I00224a5dda297070e31defd650247261e08dc830
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit c7eaa8873b)
2017-07-12 21:17:10 +08:00
Julia Lawall
94e1aa8024 UPSTREAM: Coccinelle: reduce rule applicability
Rule r is only use in org or report mode, so only execute it in those
cases.

Change-Id: Id2705a31f11329132b5af54ba933c208a49557bd
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 8f551befa2)
2017-07-12 21:17:10 +08:00
Andrzej Hajda
b6927d861c UPSTREAM: coccinelle: tests: unsigned value cannot be lesser than zero
Unsigned expressions cannot be lesser than zero. Presence of comparisons
'unsigned (<|<=|>|>=) 0' often indicates a bug, usually wrong type of variable.
The patch beside finding such comparisons tries to eliminate false positives,
mainly by bypassing range checks.

gcc can detect such comparisons also using -Wtype-limits switch, but it warns
also in correct cases, making too much noise.

Change-Id: I9fbf55a16d9ae508ca46cba2f8292d5e4b4cc697
Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
Acked-by: Julia Lawall <julia.lawall@lip6.fr>
Signed-off-by: Michal Marek <mmarek@suse.com>
Signed-off-by: Huang, Tao <huangtao@rock-chips.com>
(cherry picked from commit 3f984cb399)
2017-07-12 21:17:10 +08:00