Add an element to ANDROID_VENDOR_DATA_ARRAY(1,2) in task_struct
Bug: 169343953
Signed-off-by: Egor Uleyskiy <e.uleyskiy@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Iee22bb544da5cc355d162d7a966c656f453c8a33
Devices with plenty of RAM might benefit from THP usage. Added fields
would allow to enable CONFIG_TRANSPARENT_HUGEPAGE without affecting ABI.
Bug: 168269341
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ieb644a8da5377383d514197ee02d7bfd6f1d346d
ehci_handshake was added to the symbol list as a temporary workaround
for CRC-related issues in the ehci code. But since this has now been
fixed, let's drop the unnecessary symbol list altogether.
Bug: 167230325
Signed-off-by: Quentin Perret <qperret@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I8f56b01ff9bed8e0d417f8c90adb7c32480d55cf
The CRC calculation done by genksyms is triggered when the parser hits
EXPORT_SYMBOL*() macros. At this point, genksyms recursively expands the
types of the function parameters, and uses that as the input for the CRC
calculation. In the case of forward-declared structs, the type expands
to 'UNKNOWN'. Following this, it appears that the result of the
expansion of each type is cached somewhere, and seems to be re-used
when/if the same type is seen again for another exported symbol in the
same C file.
Unfortunately, this can cause CRC 'stability' issues when a struct
definition becomes visible in the middle of a C file. For example, let's
assume code with the following pattern:
struct foo;
int bar(struct foo *arg)
{
/* Do work ... */
}
EXPORT_SYMBOL_GPL(bar);
/* This contains struct foo's definition */
#include "foo.h"
int baz(struct foo *arg)
{
/* Do more work ... */
}
EXPORT_SYMBOL_GPL(baz);
Here, baz's CRC will be computed using the expansion of struct foo that
was cached after bar's CRC calculation ('UNKOWN' here). But if
EXPORT_SYMBOL_GPL(bar) is removed from the file (because of e.g. symbol
trimming using CONFIG_TRIM_UNUSED_KSYMS), struct foo will be expanded
late, during baz's CRC calculation, which now has visibility over the
full struct definition, hence resulting in a different CRC for baz.
The proper fix for this certainly is in genksyms, but that will take me
some time to get right. In the meantime, we have seen one occurrence of
this in the ehci-hcd code which hits this problem because of the way it
includes C files halfway through the code together with an unlucky mix
of symbol trimming.
In order to workaround this, move the include done in ehci-hub.c early
in ehci-hcd.c, hence making sure the struct definitions are visible to
the entire file. This improves CRC stability of the ehci-hcd exports
even when symbol trimming is enabled.
Bug: 167230325
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Quentin Perret <qperret@google.com>
Link: https://lore.kernel.org/r/20200916171825.3228122-1-qperret@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 29231826f3bd65500118c473fccf31c0cf14dbc0)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ie56a4deee980652e5285a0744a8bcc2c9e60db73
Avoid sending fw down uevent to wlan driver twice for
one ssr/pdr.
Change-Id: I9c99b16c3760ef7b432df16b2f326db39371e3c3
Signed-off-by: Sandeep Singh <sandsing@codeaurora.org>
For currently if return 0 it will search the whole
device tree blob for all device type memory. It will
affect the unnecessary boot up time.
Change-Id: I688b54eda224b744bbc7e706f8b70cccdf8cc38c
Signed-off-by: Maria Yu <aiquny@codeaurora.org>
Refine driver's power on/off flow and make regulators' state
to be proper in all scenes.
Change-Id: I5d26c3134dfbdc53037fe4aac16739b24c0c183b
Signed-off-by: Fei Mao <feim1@codeaurora.org>
Align iova based on size for optimal performance before mapping.
Change-Id: Ic1d9a2125690f91ad3b15f7373683edb48d9f497
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
Update the Vivo symbol list to come up to date with some more modules.
No new symbols are exported from the system, so no .xml file change
needed.
Bug: 170931247
Change-Id: I21e8ce22e327f315efecb9c4597560239b1e0aae
Signed-off-by: Chenggang Wang <wangchenggang@vivo.com>
Set hw reset flag as done after sdcc hw reset else
hw reset as part of recovery happens only once.
md->reset_done flag is set inside mmc_blk_reset function with
flag MMC_BLK_CQE_RECOVERY. And this flag is cleared only
inside function mmc_blk_reset_success. But since mmc_blk_reset
and mmc_blk_reset_success are used with if else condition, code
flow can execute only one of the function, hence if mmc_blk_reset
is executed and not cleared within mmc_blk_reset_success, next
mmc_blk_reset call returns without resetting the hw.
Change-Id: I14915ae26240769b45cec8d2793e5f8604062eef
Signed-off-by: Ram Prakash Gupta <rampraka@codeaurora.org>
During cqe initialization, upon enabling cqe enable bit,
command queue engine gets reset. During hw reset this is
leading to SMMU fault as during reset tdl base register
contents are getting lost.
Restore cmdq vendor cfg register data post hw reset to disable
cqe reset post cqe initialization.
Change-Id: I8ffa2c2fa6754b697c4d441004efa4dc366bbf5f
Signed-off-by: Ram Prakash Gupta <rampraka@codeaurora.org>
Add support for gcc hw reset for sdcc. This feature would
help recover emmc host controller and card cleanly in case
software recovery fails.
This would also help reset hwkm key during probe for crypto
when called during probe.
Change-Id: I32c7fbfb1a97bb69924e1a0c6ea90a400dd35c43
Signed-off-by: Ram Prakash Gupta <rampraka@codeaurora.org>
First problem is we hit BUG_ON() in f2fs_get_sum_page given EIO on
f2fs_get_meta_page_nofail().
Quick fix was not to give any error with infinite loop, but syzbot caught
a case where it goes to that loop from fuzzed image. In turned out we abused
f2fs_get_meta_page_nofail() like in the below call stack.
- f2fs_fill_super
- f2fs_build_segment_manager
- build_sit_entries
- get_current_sit_page
INFO: task syz-executor178:6870 can't die for more than 143 seconds.
task:syz-executor178 state:R
stack:26960 pid: 6870 ppid: 6869 flags:0x00004006
Call Trace:
Showing all locks held in the system:
1 lock held by khungtaskd/1179:
#0: ffffffff8a554da0 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x53/0x260 kernel/locking/lockdep.c:6242
1 lock held by systemd-journal/3920:
1 lock held by in:imklog/6769:
#0: ffff88809eebc130 (&f->f_pos_lock){+.+.}-{3:3}, at: __fdget_pos+0xe9/0x100 fs/file.c:930
1 lock held by syz-executor178/6870:
#0: ffff8880925120e0 (&type->s_umount_key#47/1){+.+.}-{3:3}, at: alloc_super+0x201/0xaf0 fs/super.c:229
Actually, we didn't have to use _nofail in this case, since we could return
error to mount(2) already with the error handler.
As a result, this patch tries to 1) remove _nofail callers as much as possible,
2) deal with error case in last remaining caller, f2fs_get_sum_page().
Change-Id: I886e51597190332553b6a6bbd9fa474f4995bac6
Reported-by: syzbot+ee250ac8137be41d7b13@syzkaller.appspotmail.com
Reviewed-by: Chao Yu <yuchao0@huawei.com>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Git-commit: 86f33603f8c51537265ff7ac0320638fd2cbdb1b
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux.git/
Signed-off-by: Sayali Lokhande <sayalil@codeaurora.org>
If a channel is being rapidly restarting and the kobj release worker
is busy, there is a chance the the rpdev_release function will run
after the channel struct itself has been released.
There should not be a need to decouple the channel from rpdev in the
rpdev release since that should only happen from the close commands.
Change-Id: Ia4131151b7efb014716c5a0666f940384975ea42
Signed-off-by: Chris Lew <clew@codeaurora.org>
For low memory variant targets overall buffer size to be allocated
for gsi needs to be reduced. This patch introduces a defconfig
USB_LOW_MEM_VARIANT which is a boolean and will be set if target
is low memory variant and accordingly allocate memory for buffers
on GSI.
Change-Id: Ibc99fb0d04c964b3097af3896109dadb9ea473c9
Signed-off-by: Rohith Kollalsi <rkollals@codeaurora.org>
Surround vendor extensions with #ifdef directive to make them
available only for QGKI builds.
Change-Id: Ibea4847739e97e4ffd9ea97223c20f14aa53a967
Signed-off-by: Santosh Mardi <gsantosh@codeaurora.org>
Make sure all error paths clean up properly.
Change-Id: Idbf8b9b33f576b2b22f0120413f290d1ff4e0cef
Signed-off-by: Carter Cooper <ccooper@codeaurora.org>
If frequency update is not honored in cases where it matches to the
previous update, the previous policy update may be revoked any time
and desired performance may drop before the usecase completeion of
the current frequency update.
Change-Id: Ib626f04ecdd343b767c3e0609863a9b8d30f5187
Signed-off-by: Kishore Sri venkata Ganesh Bolisetty <bsrivenk@codeaurora.org>
Display uses RM owned MSGQ for lending mem and irq res handles. In
addition, display may need to communicate custom data between the VMs
based on the value added display features that need to be supported
while the trusted VM applications are active. This change introduces
the MSGQ dedicated for display to establish the communication channel.
Change-Id: I8d07a3eb8591364f245c37a947a9ba5457c46efb
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
Enable PCI_QTI config flag to add QTI specific code to upstream
PCI driver for sdxlemur.
Change-Id: Ic17441714ac67c7965af43c59ff24cfef432ae6b
Signed-off-by: Tony Truong <truong@codeaurora.org>
Documentation/networking/ip-sysctl.txt:46 says:
ip_forward_use_pmtu - BOOLEAN
By default we don't trust protocol path MTUs while forwarding
because they could be easily forged and can lead to unwanted
fragmentation by the router.
You only need to enable this if you have user-space software
which tries to discover path mtus by itself and depends on the
kernel honoring this information. This is normally not the case.
Default: 0 (disabled)
Possible values:
0 - disabled
1 - enabled
Which makes it pretty clear that setting it to 1 is a potential
security/safety/DoS issue, and yet it is entirely reasonable to want
forwarded traffic to honour explicitly administrator configured
route mtus (instead of defaulting to device mtu).
Indeed, I can't think of a single reason why you wouldn't want to.
Since you configured a route mtu you probably know better...
It is pretty common to have a higher device mtu to allow receiving
large (jumbo) frames, while having some routes via that interface
(potentially including the default route to the internet) specify
a lower mtu.
Note that ipv6 forwarding uses device mtu unless the route is locked
(in which case it will use the route mtu).
This approach is not usable for IPv4 where an 'mtu lock' on a route
also has the side effect of disabling TCP path mtu discovery via
disabling the IPv4 DF (don't frag) bit on all outgoing frames.
I'm not aware of a way to lock a route from an IPv6 RA, so that also
potentially seems wrong.
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Cc: Eric Dumazet <edumazet@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Cc: Lorenzo Colitti <lorenzo@google.com>
Cc: Sunmeet Gill (Sunny) <sgill@qti.qualcomm.com>
Cc: Vinay Paradkar <vparadka@qti.qualcomm.com>
Cc: Tyler Wear <twear@qti.qualcomm.com>
Cc: David Ahern <dsahern@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
(Backported from commit 02a1b175b0e92d9e0fa5df3957ade8d733ceb6a0).
Change-Id: I26f336f891711f0149b2835d2c4a78fc8407b5ba
Git-Commit: 02a1b175b0e92d9e0fa5df3957ade8d733ceb6a0
Git-repo: https://kernel.googlesource.com/pub/scm/linux/kernel/git/stable/linux
Signed-off-by: Sauvik Saha <ssaha@codeaurora.org>
Add 5nm Combo and Uni phy macro definition file for
broader use across all 5nm QMP Phy device tree nodes.
Change-Id: I5791723981b3b7015e69d2dbc07e0cdd2d2a25c6
Signed-off-by: Elson Roy Serrao <eserrao@codeaurora.org>
Enable domain power in arm_smmu_map/map_sg. This is not required with QGKI
kernel due to downstream fixes. So limit the domain power enable only for
QGKI build.
Add config ARM_SMMU_SKIP_MAP_POWER_ON to limit this for specific targets.
Change-Id: I299666da1b812fc3dd06960e75ddd1fb08e9a8d0
Signed-off-by: Prakash Gupta <guptap@codeaurora.org>
Before copying dump to userspace, memory is mapped and then the
content get copied to userspace and later that memory should be
unmapped.
Let's unmap the memory after the content get copied to
userspace.
Change-Id: I03d53ebd1cdb743e1820f226a49d46136eca4874
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>