- Add the hook to provide additional information like
a task scheduling log.
Bug: 169374262
Signed-off-by: Sangmoon Kim <sangmoon.kim@samsung.com>
Change-Id: I203dbc6faa77687ea48769f76658d28b29ef46fd
Some additional drivers are now needed for cpufreq to work, so
add them to the db845c_gki.fragment
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Ie126f4613b9e5e31c9862d3d4b9c2afb4a5562e6
Bug: 146449535
Update the android/abi_gki_aarch64_qcom with recent symbol additions.
Simple change and no need to update the .xml file, as no new symbol
addition.
Bug: 169739756
Change-Id: I3e992c3ecf4a06eed4b3459cb6343cc5a4f8941d
Signed-off-by: Mayank Grover <groverm@codeaurora.org>
With non-canonical CFI, LLVM generates jump table entries for external
symbols in modules and as a result, a function pointer passed from a
module to the core kernel will have a different address.
Disable the warning for now.
Bug: 145210207
Signed-off-by: Daniel Mentz <danielmentz@google.com>
Change-Id: I576a07206a465902773481e51a84529f0ac2e84b
- Add EXPORT_SYMBOL_GPL for find_task_by_vpid() so that drivers
can be loadable as a module.
- This API is required by loadable driver module from samsung to
read process related information based on pid and thread id.
To get information on when a certain process or thread was started,
duration of run, Average load contributed by it.
Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I0db9cc50c93eedff0f3e9dea0ac09a5d17d118f0
(cherry picked from commit bee18dd57e89f4e7aa79f6054b9238b99e45c191)
- Add EXPORT_SYMBOL_GPL for runqueues().
- This API is required by loadable driver module,to get number of
jobs in the run queue (state R) or waiting for disk I/O (state D)
averaged over 1 min.
Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I3e80a46bef2e7c92714b68cc5b6b617ac50bc478
(cherry picked from commit 6b0a9dc6df8d8be21c8d178a01e0711b0fe6ce73)
- Add EXPORT_SYMBOL_GPL for nsec_to_clock_t() so that drivers
be loadable as a module.
- This API is required by loadable driver module from samsung to
fetch process uptime based on CPU clock ticks to get the exact time
during which app is scheduled in user mode.
Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I45be5fd7873dc7c21aa583313499f48f8b10bb1b
(cherry picked from commit 0575bec804810d9b8abf533c4ef4a957968553fc)
- Add EXPORT_SYMBOL_GPL for __lock_task_sighand()
- This API is required by loadable driver module from samsung to
Lock task structure, when reading task/process related information.
Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: Ia54e17b1f2630bcc648e7840cf36e743f08ba9c9
(cherry picked from commit a719abf03114cfc0b9f68937d9cd900d74d65cae)
- Add EXPORT_SYMBOL_GPL for thread_group_cputime_adjusted()
to allow drivers to be loadable as a module.
- This API is required by loadable driver module from samsung
to fetch process uptime based on CPU clock ticks to get the
exact duration of time app is scheduled in user mode.
Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Bug: 158067689
Change-Id: I1843de08edf5bb2eee806845f4b5e0a305da5fe7
(cherry picked from commit bf679b941237ae76d0bba8d98e670819e029847a)
- Add EXPORT_SYMBOL_GPL for get_avenrun() so that drivers
be loadable as a module.
- This API is required by loadable driver module
to get Number of jobs in the run queue (state R) or waiting
for disk I/O(state D) averaged over 1 min.
Signed-off-by: Abhilasha Rao <abhilasha.hv@samsung.corp-partner.google.com>
Signed-off-by: Todd Kjos <tkjos@google.com>
Bug: 158067689
Change-Id: I56c12c908be068f78e16004df876be3bee0e7229
(cherry picked from commit 64ea6f327359a90eca8ec9fe2a8f0caba0188e45)
This adds missing anonymous to union types, creating some one-time
churn.
Bug: 167563393
Change-Id: I08f55d48793870c6a82ff2c76d3460733ffdbe41
Signed-off-by: Matthias Maennich <maennich@google.com>
Different cpu type will have different suppression ration.
So we add cpumask parameter to cpu capacity vendor hook.
Bug: 167126223
Signed-off-by: Yun Hsiang <yun.hsiang@mediatek.com>
Change-Id: I983a3aca2195f7c37c43d31fa588c999a825ee49
Update the android/abi_gki_aarch64_exynos with recent symbol additions.
Note, no new symbols are needed to be exported here, making this a
simple change and no need to update the .xml file.
Bug: 168666574
Signed-off-by: Jaehyoung Choi <jkkkkk.choi@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: Ibe92486f6f84163990b65c75be96236f76f8af1e
And replace many references of ${ROOT_DIR}/common with
${ROOT_DIR}/${KERNEL_DIR}, which makes it a lot easier
to branch off of ACK and update the KERNEL_DIR.
The variable of KERNEL_DIR will be set in build/_setup_env.sh
to the directory of the build config file by default if it's
not set explicitly in the build config file or in environment.
Test: build test with following configs
common/build.config.gki.aarch64
common/build.config.db845c
common/build.config.hikey960
common-modules/virtual-device/build.config.cuttlefish.aarch64
common-modules/virtual-device/build.config.goldfish.aarch64
Bug: 162785964
Change-Id: I790ac0ded10bd790484f14c6f93d53e06c38b830
Signed-off-by: Will McVicker <willmcvicker@google.com>
Signed-off-by: Yongqin Liu <yongqin.liu@linaro.org>
(cherry picked from commit 931718fa65fe5e34d143250c048f591a7d74e5f8)
Revert submission 1437052
Reason for revert: ABI is changed. While is is correct, we will hold off doing this for another week.
Reverted Changes:
Iae19ae10f:UPSTREAM: ehci-hcd: Move include to keep CRC stabl...
I85a933434:ANDROID: Update android/abi_gki_aarch64.xml
Change-Id: I2859f7b3ffa293371f842c01ecf433a84d5e1179
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Revert submission 1437052
Reason for revert: ABI is changed. While is is correct, we will hold off doing this for another week.
Reverted Changes:
Iae19ae10f:UPSTREAM: ehci-hcd: Move include to keep CRC stabl...
I85a933434:ANDROID: Update android/abi_gki_aarch64.xml
Change-Id: If22472924ae1a42956123806eeb4fed750db5204
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Leaf changes summary: 5 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 5 Changed, 0 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable
5 functions with some sub-type change:
[C] 'function int ehci_handshake(ehci_hcd*, void*, u32, u32, int)' at ehci-hcd.c:148:1 has some sub-type changes:
CRC value (modversions) changed from 0xab5f23a3 to 0xe32dc66c
[C] 'function void ehci_init_driver(hc_driver*, const ehci_driver_overrides*)' at ehci.h:879:1 has some sub-type changes:
CRC value (modversions) changed from 0x70c01a65 to 0x5bd6ac93
[C] 'function int ehci_resume(usb_hcd*, bool)' at ehci.h:887:1 has some sub-type changes:
CRC value (modversions) changed from 0x51dbddda to 0xa250ac83
[C] 'function int ehci_setup(usb_hcd*)' at ehci.h:881:1 has some sub-type changes:
CRC value (modversions) changed from 0x175f644c to 0xda517721
[C] 'function int ehci_suspend(usb_hcd*, bool)' at ehci-hcd.c:1085:1 has some sub-type changes:
CRC value (modversions) changed from 0x3afe7f3 to 0x5a7df441
Bug: 167230325
Signed-off-by: Quentin Perret <qperret@google.com>
Change-Id: I85a93343482eacce6e989f545dcd89432ad70c85
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)
Change-Id: Iae19ae10feb15fd775076acdd2e0b29d7ccb6b20
scripts/mkcompile_h runs $(CC) just for getting the version string.
Reuse CONFIG_CC_VERSION_TEXT for optimization.
For GCC, this slightly changes the version string. I do not think it
is a big deal as we do not have the defined format for LINUX_COMPILER.
In fact, the recent commit 4831f7ad6c ("kbuild: mkcompile_h:
Include $LD version in /proc/version") added the linker version.
Bug: 168274246
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 9a950154668729a472d17b8e307d92e7c60f45f7)
Signed-off-by: Mars Lin <marslin@google.com>
Change-Id: I66bac5b44bf764e7c0e432ae17bcdf06d79c96d0
scripts/mkcompile_h uses $(CC) only for getting the version string.
I suspected there was a specific reason why the additional flags were
needed, and dug the commit history. This code dates back to at least
2002 [1], but I could not get any more clue.
Just get rid of it.
[1]: https://git.kernel.org/pub/scm/linux/kernel/git/history/history.git/commit/?id=29f3df7eba8ddf91a55183f9967f76fbcc3ab742
Bug: 168274246
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
(cherry picked from commit 01a6126b5f7efdf75480a2b970377f5724cb885a)
Signed-off-by: Mars Lin <marslin@google.com>
Change-Id: If887ea1e9e43b9ce83bf8fe9cc0db809818c3bb8
Commit 21c54b7747 ("kconfig: show compiler version text in the top
comment") added the environment variable, CC_VERSION_TEXT in the comment
of the top Kconfig file. It can detect the compiler update, and invoke
the syncconfig because all environment variables referenced in Kconfig
files are recorded in include/config/auto.conf.cmd
This commit makes it a CONFIG option in order to ensure the full rebuild
when the compiler is updated.
This works like follows:
include/config/kconfig.h contains "CONFIG_CC_VERSION_TEXT" in the comment
block.
The top Makefile specifies "-include $(srctree)/include/linux/kconfig.h"
to guarantee it is included from all kernel source files.
fixdep parses every source file and all headers included from it,
searching for words prefixed with "CONFIG_". Then, fixdep finds
CONFIG_CC_VERSION_TEXT in include/config/kconfig.h and adds
include/config/cc/version/text.h into every .*.cmd file.
When the compiler is updated, syncconfig is invoked because init/Kconfig
contains the reference to the environment variable CC_VERTION_TEXT.
CONFIG_CC_VERSION_TEXT is updated to the new version string, and
include/config/cc/version/text.h is touched.
In the next rebuild, Make will rebuild every files since the timestamp
of include/config/cc/version/text.h is newer than that of target.
Bug: 168274246
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
(cherry picked from commit 8b59cd81dc5e724eaea283fa6006985891c7bff4)
Signed-off-by: Mars Lin <marslin@google.com>
Change-Id: Ie52bb8e33b95d0e97998024d28c0d8d7caf8aa59
The adv7533 node had a duplicate entry in the hi3660.dtsi
which is misplaced as that hardware is board specific and
not soc specific.
A recent changes upstream were backported to -stable which
recently broke the driver from loading properly, so this
patch moves the details from the incorrect node into its
proper place, resolving the issue.
Fixes: 274f4e9c57 ("arm64: dts: hisilicon: hikey: fixes to comply with adi, adv7533 DT binding")
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: Iffe78badb08a1a49ed99fb8ab2257cb95e368f3f
(cherry picked from commit 623715b470c6c51e54344a274ca90df19556b56a)
Similar to commit f683c8dc7f ("ANDROID: kallsyms: strip hashes from
static functions with ThinLTO and CFI"), since LLVM adds a hash to
static function names when CONFIG_THINLTO and CFI are enabled, callers
of kallsyms_lookup_name() which aren't aware of the additional suffix
will fail to find the symbol. One example is kprobes (both compiled
and the dynamic events) which rely on this to resolve the function
name to attach a kprobe/kretprobe to.
Address this by also calling the cleanup_symbol_name() helper from
kallsyms_lookup_name() when failing to match a symbol by name.
This will strip off the hash suffix, if any, and attempt the
strcmp() again.
Bug: 167595670
Change-Id: I4c79c818c29b4b82a94a5a7e86ae9783a41e853d
Signed-off-by: Jack Pham <jackp@codeaurora.org>
This upgrades some types from declaration-only tracking to full type
tracking, but creates this one-time churn.
Bug: 158736583
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I39f778d7660fb4065eec2ecb6dd1ed47816e25b6
Libabigail learned to accept 'symbol_list' as a valid suffix for symbol
list sections. Hence make use of it consistently.
Bug: 162536543
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I1454b0068769c9e57a533dafb6267e63adb7ceb0
Remove CONFIG_SCSI_UFS_HISI=m and CONFIG_TYPEC_TCPM=m
from the hikey960_gki.fragment, as those configs have
been added to the gki_defconfig
Fixes: bb765ef8427e ("ANDROID: GKI: enable QCOM and HISI UFS drivers")
Fixes: 5625a6460e96 ("ANDROID: GKI: enable CONFIG_TYPEC_TCPM")
Signed-off-by: John Stultz <john.stultz@linaro.org>
Change-Id: I124a0d050c7170557d9672968729af196ad2f81c
(cherry picked from commit ae78c73104aa2fa957cbb7b4524c3e3e862174fd)
With CFI enabled compiler replacing the reference to vm_mmap
passed to copy_to_user with a pointer to the CFI jump table
in the module itself. So use the __va_function API for
finding the proper address of vm_mmap.
Bug: 166220312
Suggested-by: Sami Tolvanen <samitolvanen@google.com>
Change-Id: Id5bd96cc9bfa1aa99f34bd4785792e0a4eeae5b1
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
We use non-canonical CFI jump tables with CONFIG_CFI_CLANG, which
means the compiler replaces function address references with the
address of the function's CFI jump table entry. This results in
__pa_symbol(function), for example, returning the physical address
of the jump table entry, which can lead to address space confusion
since the jump table itself points to a virtual address.
This change adds generic definitions for __pa/va_function, which
architectures that support CFI can override.
Bug: 166220312
Change-Id: If4a162de7854547d8437bf59be03eb6d16220832
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
When some processes crashed, we want to save cpu regs(x0-x30、pc、sp),
and context(task_struct、thread_info) to log for debugging
Bug: 166228327
Signed-off-by: yong qian <qianyong@oppo.com>
Change-Id: I4f49ffed583a0e20f1aaa7e445e85a0cbb603bbe
Currently __set_oom_adj loops through all processes in the system to
keep oom_score_adj and oom_score_adj_min in sync between processes
sharing their mm. This is done for any task with more that one mm_users,
which includes processes with multiple threads (sharing mm and signals).
However for such processes the loop is unnecessary because their signal
structure is shared as well.
Android updates oom_score_adj whenever a tasks changes its role
(background/foreground/...) or binds to/unbinds from a service, making
it more/less important. Such operation can happen frequently.
We noticed that updates to oom_score_adj became more expensive and after
further investigation found out that the patch mentioned in "Fixes"
introduced a regression. Using Pixel 4 with a typical Android workload,
write time to oom_score_adj increased from ~3.57us to ~362us. Moreover
this regression linearly depends on the number of multi-threaded
processes running on the system.
Mark the mm with a new MMF_MULTIPROCESS flag bit when task is created with
(CLONE_VM && !CLONE_THREAD && !CLONE_VFORK). Change __set_oom_adj to use
MMF_MULTIPROCESS instead of mm_users to decide whether oom_score_adj
update should be synchronized between multiple processes. To prevent
races between clone() and __set_oom_adj(), when oom_score_adj of the
process being cloned might be modified from userspace, we use
oom_adj_mutex. Its scope is changed to global. The combination of
(CLONE_VM && !CLONE_THREAD) is rarely used except for the case of vfork().
To prevent performance regressions of vfork(), we skip taking oom_adj_mutex
and setting MMF_MULTIPROCESS when CLONE_VFORK is specified. Clearing the
MMF_MULTIPROCESS flag (when the last process sharing the mm exits) is left
out of this patch to keep it simple and because it is believed that this
threading model is rare. Should there ever be a need for optimizing that
case as well, it can be done by hooking into the exit path, likely
following the mm_update_next_owner pattern.
With the combination of (CLONE_VM && !CLONE_THREAD && !CLONE_VFORK) being
quite rare, the regression is gone after the change is applied.
Fixes: 44a70adec9 ("mm, oom_adj: make sure processes sharing mm have same view of oom_score_adj")
Reported-by: Tim Murray <timmurray@google.com>
Debugged-by: Minchan Kim <minchan@kernel.org>
Suggested-by: Michal Hocko <mhocko@kernel.org>
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Bug: 168521639
Link: https://lore.kernel.org/linux-fsdevel/20200902012558.2335613-1-surenb@google.com/
[isaacm: upstream bound, no cherry-pick info because patch is in mm tree]
Change-Id: I20352a77815fbc358c36e686bb1503fdeea658ed
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
This is a one-off change that updates the type ids of anonymous
structs and unions to a more stable id.
Bug: 163532421
Change-Id: I2ae8b1fa19fab489412fca3f83fa9e2c7361c2b7
Signed-off-by: Giuliano Procida <gprocida@google.com>
When sudden reset by watchdog occurs, kernel log is very helpful.
But the log has saved structure type in log_buf.
So we want to collect the log on runtime to string format at other
reserved memory.
Bug: 167766040
Change-Id: Ic9686acc7c284e2ab81395fb9cc076fafe142bf9
Signed-off-by: Changki Kim <changki.kim@samsung.com>
This reverts commit 72f2bc5fc2.
You can use input_handle_event instead of this vendor hook.
Change-Id: I8c6c5705f07181710c99a01239d75ecf43f9c5bf
Signed-off-by: Changki Kim <changki.kim@samsung.com>
Android Common Kernel compiled by clang with Shadow Call Stack will
use GS segment. However, __restore_processor_state is called when
system wakes up from S3 and at the moment GS is not restored yet.
This is a hack by copying a small code snippet(setting gs base) from
__restore_processor_state to restore_processor_state. It prepares GS
before __restore_processor_state is called. At the same time,
restore_processor_state is still small enough so that SCS is not on,
as SCS seems to be on only for large functions.
Bug: 166163480
Change-Id: I3bfe4ac61dee876da57de6578c9a7f01431a1743
Signed-off-by: Haitao Shan <hshan@google.com>
The most common cause of the binder transaction buffer filling up is a
client rapidly firing oneway transactions into a process, before it has
a chance to handle them. Yet the root cause of this is often hard to
debug, because either the system or the app will stop, and by that time
binder debug information we dump in bugreports is no longer relevant.
This change warns as soon as a process dips below 80% of its oneway
space (less than 100kB available in the configuration), when any one
process is responsible for either more than 50 transactions, or more
than 50% of the oneway space.
Signed-off-by: Martijn Coenen <maco@android.com>
Signed-off-by: Martijn Coenen <maco@google.com>
Acked-by: Todd Kjos <tkjos@google.com>
Link: https://lore.kernel.org/r/20200821122544.1277051-1-maco@android.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit 261e7818f06ec51e488e007f787ccd7e77272918
git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc.git/
char-misc-next)
Signed-off-by: Martijn Coenen <maco@android.com>
Bug: 147795659
Change-Id: Idc2b03ddc779880ca4716fdae47a70df43211f25
Commit 1278a5bf16 ("ANDROID: ABI: Added symbols for allwinner")
introduced ehci_* symbols to the symbol list. Due to a bug in genksyms,
the CRC of those is not resilient to whether other symbols are exported
as well. In particular, the CRC changes with the export/trimming of
ehci_handshake. Add an artificial symbol list to contain ehci_handshake
to make this stable.
Also update the ABI representation accordingly:
1 Added function:
[A] 'function int ehci_handshake(ehci_hcd*, void*, u32, u32, int)'
Bug: 167230325
Signed-off-by: Matthias Maennich <maennich@google.com>
Change-Id: I58d3a93f49e70a66f34b66f9f8784b9c19c5a58b
This reverts commit a81a69408b as it is needed, and is in the upstream 5.4.y tree now.
Bug: 167477898
Change-Id: Ica5a915027546a7f6f655c336db2489897b007f0
Cc: Hyunsoon Kim <h10.kim@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Without NAPI_GRO_CB(skb)->is_flist initialized, when the dev doesn't
support NETIF_F_GRO_FRAGLIST, is_flist can still be set and fraglist
will be used in udp_gro_receive().
So fix it by initializing is_flist with 0 in udp_gro_receive.
Fixes: 9fd1ff5d2ac7 ("udp: Support UDP fraglist GRO/GSO.")
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Acked-by: Steffen Klassert <steffen.klassert@secunet.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Bug: 167707933
Change-Id: Icd2977dfb7506ce0f83d88f52184aa282bc2cac3
(cherry picked from commit bde1b56f898ca8112912d7b36e55e1543b3be0cf)
Signed-off-by: Hyunsoon Kim <h10.kim@samsung.com>
This patch extends UDP GRO to support fraglist GRO/GSO
by using the previously introduced infrastructure.
If the feature is enabled, all UDP packets are going to
fraglist GRO (local input and forward).
After validating the csum, we mark ip_summed as
CHECKSUM_UNNECESSARY for fraglist GRO packets to
make sure that the csum is not touched.
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Bug: 167707933
Change-Id: I7756cb47212713efde64a246a42c88d0b0f5521a
(cherry picked from commit 9fd1ff5d2ac7181844735806b0a703c942365291)
Signed-off-by: Hyunsoon Kim <h10.kim@samsung.com>