Commit Graph

979306 Commits

Author SHA1 Message Date
Minchan Kim
0445b67bee ANDROID: mm: page_pinner: change timestamp format
This patch changes timestamp format to align with trace event time format.
It was much easier to parse page_pinner event order by the time with
trace event.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: Ib0e81a47df588a2f6ebf842a5f3c5b298da4fe40
2021-07-12 13:57:40 -07:00
Minchan Kim
71da06728c ANDROID: mm: page_pinner: print_page_pinner refactoring
For print_page_pinner argument passing, use the one structure
parameter instead of several parameters with fields of the
structure.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I3816eb6154c6c56a66ee9079091880afda817914
2021-07-12 13:57:40 -07:00
Minchan Kim
b83e564914 ANDROID: mm: page_pinner: remove shared_count
Since we don't use it, remove it.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I04fe617f9203a6bbab5ebc424f7025df8f6d50ac
2021-07-12 13:57:40 -07:00
Minchan Kim
849f048050 ANDROID: mm: page_pinner: remove WARN_ON_ONCE
There are several path the WARN_ON_ONCE could be triggered but
it doesn't mean real bug since we intentionally allow it to make
code simple at this moment. So just remove the warnings	to prevent
folks confused it.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I7d14c8490db841f61b01fe7c16b406c9b1850c46
2021-07-12 13:57:39 -07:00
Minchan Kim
9a453100fc ANDROID: mm: page_pinner: fix typos
Fix typos.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: Ida3ae53f775b35e61e66703ed8409c0b6a1e04f0
2021-07-12 13:57:39 -07:00
Minchan Kim
d012783a86 ANDROID: mm: page_pinner: reset migration failed page
Currently, __reset_page_pinner reset only PAGE_EXT_GET page freeing,
not PAGE_EXT_PINNER_MIGRATION_FAILED page. It should handle both
cases to prevent wrong PAGE_EXT_PINNER_MIGRATION_FAILED setting.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I9b4124393ee432c7cb29cd12d160ecf2a1e34360
2021-07-12 13:57:39 -07:00
Minchan Kim
470cce5085 ANDROID: mm: page_pinner: record every put_page
There are some places using put_page_testzero instead of put_page.
Thus, move page_pinner_put_page into put_page_testzero to catch
all of put operations.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: If33b2a28ceb64e3ccab83990eac2c1cc291c3b08
2021-07-12 13:57:39 -07:00
Minchan Kim
9f47e5fdda ANDROID: mm: page_pinner: change function names
Make function name more clear to indicate what it's doing.

Bug: 192475091
Signed-off-by: Minchan Kim <minchan@google.com>
Change-Id: I6adabc0df6a54cf24d8287bf0f22cf7dcdc7ad03
2021-07-12 13:57:39 -07:00
Liujie Xie
a8385d61f2 ANDROID: Allow vendor module to reclaim a memcg
Export try_to_free_mem_cgroup_pages function to allow vendor modules to reclaim a memory cgroup.

Bug: 192052083

Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: Iec6ef50f5c71c62d0c9aa6de90e56a143dac61c1
2021-07-12 18:54:56 +00:00
Liujie Xie
f41a95eadc ANDROID: Export memcg functions to allow module to add new files
Export cgroup_add_legacy_cftypes and a helper function to allow vendor module to expose additional files in the memory cgroup hierarchy.

Bug: 192052083

Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: Ie2b936b3e77c7ab6d740d1bb6d70e03c70a326a7
2021-07-12 18:53:29 +00:00
Wesley Cheng
46bf3b94e7 FROMGIT: dt-bindings: usb: dwc3: Update dwc3 TX fifo properties
Update the tx-fifo-resize property with a better description, while
adding the tx-fifo-max-num, which is a new parameter allowing
adjustments for the maximum number of packets the txfifo resizing logic
can account for while resizing the endpoints.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
Link: https://lore.kernel.org/r/1625908395-5498-7-git-send-email-wcheng@codeaurora.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
cherry picked from commit 97db1b081e
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-next)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I02e712d37e1fc19634a41afc2ab679346a979b34
2021-07-12 17:11:12 +00:00
Serge Semin
b36b813e39 UPSTREAM: dt-bindings: usb: Convert DWC USB3 bindings to DT schema
DWC USB3 DT node is supposed to be compliant with the Generic xHCI
Controller schema, but with additional vendor-specific properties, the
controller-specific reference clocks and PHYs. So let's convert the
currently available legacy text-based DWC USB3 bindings to the DT schema
and make sure the DWC USB3 nodes are also validated against the
usb-xhci.yaml schema.

Note 1. we have to discard the nodename restriction of being prefixed with
"dwc3@" string, since in accordance with the usb-hcd.yaml schema USB nodes
are supposed to be named as "^usb(@.*)".

Note 2. The clock-related properties are marked as optional to match the
DWC USB3 driver expectation and to improve the bindings mainainability
so in case if there is a glue-node it would the responsible for the
clocks initialization.

Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Link: https://lore.kernel.org/r/20201210090944.16283-11-Sergey.Semin@baikalelectronics.ru
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

Bug: 186724205
(cherry picked from commit 389d776588)

Change-Id: I898cfa402b56f1d8535425d76200f624e7a2ae27
Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2021-07-12 17:11:02 +00:00
Wesley Cheng
9a80b7b728 FROMGIT: of: Add stub for of_add_property()
If building with OF Kconfig disabled, this can lead to errors for
drivers utilizing of_add_property().  Add a stub for the add API, as
it exists for the remove variant as well, and to avoid compliation
issues.  Also, export this API so that it can be used by modules.

Signed-off-by: Wesley Cheng <wcheng@codeaurora.org>
Link: https://lore.kernel.org/r/1625908395-5498-5-git-send-email-wcheng@codeaurora.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(cherry picked from commit fe794e3954
 https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb.git usb-next)
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I251e791f446a9f581cda0f1cd3a8f09b59617783
2021-07-12 17:10:22 +00:00
Eric Biggers
2742be5903 ANDROID: fips140: define fips_enabled to 1 to enable FIPS behavior
In fips140.ko, enable the behavior that the upstream fips_enabled flag
controls, such as the XTS weak key check which apparently is required.

Note that some of this behavior, such as the DRBG continuity check, is
allegedly not required.  But to ensure we don't miss anything that was
already handled upstream, it seems best to define fips_enabled to 1.  We
can still disable anything that turns out to be problematic.

Bug: 153614920
Bug: 188620248
Change-Id: Idcded9e69e7d7cdf7f2937009af209857b0c08e2
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-12 10:49:29 +00:00
Eric Biggers
e886dd4c33 ANDROID: fips140: unregister existing DRBG algorithms
fips140_algorithms[] is a list of cra_names rather than
cra_driver_names, so to specify that the existing DRBG algorithms need
to be unregistered it needs to contain "stdrng".

Bug: 153614920
Bug: 188620248
Change-Id: Id655e74858ca6bff4eedaf761d54c3ae54c2260f
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-12 10:49:29 +00:00
Eric Biggers
634445a640 ANDROID: fips140: fix deadlock in unregister_existing_fips140_algos()
crypto_remove_final() calls crypto_alg_put() which can take
crypto_alg_sem again, via a call stack like:

    down_write(&crypto_alg_sem)
    crypto_drop_spawn()
    crypto_ccm_free()
    crypto_aead_free_instance()
    crypto_destroy_instance()
    crypto_alg_put() (inlined)
    crypto_remove_final()
    unregister_existing_fips140_algos()

That causes a deadlock because unregister_existing_fips140_algos() is
already holding crypto_alg_sem.

Fix this by reducing the scope of crypto_alg_sem to the actual list
traversal and not the crypto_alg_put().

Bug: 153614920
Bug: 188620248
Change-Id: Ia724d8b13480233dad051c538dc504cb27be8777
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-12 10:49:29 +00:00
Eric Biggers
0af06624ea ANDROID: fips140: check for errors from initcalls
Check for errors when executing the initcalls so that we can't fail to
register some algorithms without noticing.

Bug: 153614920
Bug: 188620248
Change-Id: I8e55de3d7624c6700f161c92705d0f6f874476d8
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-12 10:49:28 +00:00
Eric Biggers
92de53472e ANDROID: fips140: log already-live algorithms
It may be helpful to know whether the "already-live algorithms" code
path is being executed or not, and if so, with which algorithms.  Add a
log message for it.

Bug: 153614920
Bug: 188620248
Change-Id: Ie3757794b1e43f630d5dc8f888c6ad33acacbc4c
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-12 10:49:28 +00:00
Jing-Ting Wu
0a7da21583 ANDROID: Update new mtk gki symbol
Leaf changes summary: 6 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 3 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 3 Added variables

Added functions:

[A] 'function int __traceiter_android_vh_cgroup_attach(void*, cgroup_subsys*, cgroup_taskset*)'
[A] 'function int __traceiter_android_vh_is_fpsimd_save(void*, task_struct*, task_struct*)'
[A] 'function int __traceiter_task_newtask(void*, task_struct*, unsigned long int)'

3 Added variables:

[A] 'tracepoint __tracepoint_android_vh_cgroup_attach'
[A] 'tracepoint __tracepoint_android_vh_is_fpsimd_save'
[A] 'tracepoint __tracepoint_task_newtask'

Bug: 193159431
Signed-off-by: Jing-Ting Wu <Jing-Ting.Wu@mediatek.com>
Change-Id: I32b5b26b6f86463c5521a4b6cd7c43d195f6d672
2021-07-12 10:17:15 +00:00
Puma Hsu
98085b5dd8 ANDROID: usb: Add vendor hook for usb suspend and resume
Add the hook that vendor can design and bypass the suspend/resume.
When the bypass is set, skip the orignal suspend/resume methods.

In mobile, a co-processor can be used with USB audio, and ACPU may
be able to sleep in such condition to improve power consumption.
We will need vendor hook to support this.

Bug: 192774581
Signed-off-by: Puma Hsu <pumahsu@google.com>
Change-Id: Ic62a8a1e662bbe3fb0aa17af7491daace0b9f18a
2021-07-12 09:06:49 +00:00
Guangming Cao
956db89e71 BACKPORT: FROMLIST: dma-heap: Let dma heap use dma_map_attrs to map & unmap iova
For dma-heap users, they can't bypass cache sync when map/unmap iova
with dma heap. But they can do it by adding DMA_ATTR_SKIP_CPU_SYNC
into dma_alloc_attrs.

To keep alignment, at dma_heap side, also use
dma_buf_attachment.dma_map_attrs to do iova map & unmap.

This patch is a little different with linux patch, because ACK
has cached heap, and linux doesn't have it

Bug: 189986159
Link: https://lore.kernel.org/patchwork/patch/1455032/
Change-Id: I324712644688c29e55c9197efcde9283bbbd813b
Signed-off-by: Guangming Cao <Guangming.Cao@mediatek.com>
2021-07-10 09:34:39 +00:00
Charan Teja Reddy
749d6e7f2c ANDROID: abi_gki_aarch64_qcom: Add vendor hook for shmem_alloc_page
The commit 964220d080 ("ANDROID: shmem: vendor hook in
shmem_alloc_page") adds a vendor hook related to getting the page from
driver maintained pool first for the shmem pages. It also requires
already exported __mod_node_page_state function. Add these symbols to
the list.

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added
function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 1 Added
variable

1 Added function:

  [A] 'function void __mod_node_page_state(pglist_data*, node_stat_item,
long int)'

1 Added variable:

  [A] 'tracepoint __tracepoint_android_vh_shmem_alloc_page'

Bug: 187798288
Change-Id: Id4859df62a401f9b10daf9388cdb91f4aec99b78
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2021-07-09 22:48:23 +00:00
Charan Teja Reddy
b05bbe48be ANDROID: abi_gki_aarch64_qcom: Add reclaim_shmem_address_space
Add reclaim_shmem_address_space to symbol list. This gerrit also
contains the changes resulted from changing the number of params in
shmem_mark_page_lazyfree function.

Leaf changes summary: 2 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 1 Changed, 1 Added
function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added
variable

1 Added function:

  [A] 'function int reclaim_shmem_address_space(address_space*)'

1 function with some sub-type change:

  [C] 'function void shmem_mark_page_lazyfree(page*)' at shmem.c:4296:1
has some sub-type changes:
    CRC (modversions) changed from 0x81dbf5b0 to 0xd16d738a
    parameter 2 of type 'typedef bool' was added

Bug: 187798288
Change-Id: Ieebc6d0cb2211a80a126f39b46e3c7d3583dca60
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2021-07-09 22:47:35 +00:00
xieliujie
d80c70d7a8 ANDROID: android: export kernel function arch_mmap_rnd
Vendor module needs arch_mmap_rnd() to generate new mm->mmap_base
when defining a custom mmap_layout.
More details in https://buganizer.corp.google.com/issues/191439466

Bug: 191439466
Signed-off-by: xieliujie <xieliujie@oppo.com>
Change-Id: I37644438b4e170732adc62810388450155c178a4
2021-07-09 20:51:14 +00:00
Charan Teja Reddy
25c7eb4932 ANDROID: mm: shmem: Fix build break with allnoconfig
With allnoconfig, build is breaking with below message, which is
introduced in commit daeabfe7fa ("ANDROID: mm: add
reclaim_shmem_address_space() for faster reclaims"). Fix it.

mm/shmem.c: In function ‘reclaim_shmem_address_space’:
mm/shmem.c:4321:7: error: implicit declaration of function
‘isolate_lru_page’ [-Werror=implicit-function-declaration]
   if (isolate_lru_page(page))

Bug: 187798288
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
Change-Id: I27494b329e9b667869e1f5264bd319d94b8d2dd6
2021-07-09 18:34:15 +00:00
Liujie Xie
1cdcf76b15 ANDROID: vendor_hooks: add hooks in mem_cgroup subsystem
Add hooks to tune memory policy based on mem_cgroup.

Bug: 192052083

Signed-off-by: Liujie Xie <xieliujie@oppo.com>
Change-Id: Ica1a5409eed86fbd466edd2c7557f94972a40175
2021-07-09 17:10:05 +00:00
Vignesh Saravanaperumal
726468dd4a ANDROID: GKI: add vendor padding variable in struct skb_shared_info
Some vendors want to add things to 'struct skb_shared_info', so give
them an array to place their data.

Bug: 171013716
Signed-off-by: Vignesh Saravanaperumal <vignesh1.s@samsung.com>
Change-Id: Ia0024e3e8de89f4ef335fa26208ec6c45abafb22
2021-07-09 15:37:13 +00:00
jongmin jeong
fc79c93657 FROMLIST: scsi: ufs: add quirk to enable host controller without interface configuration
samsung ExynosAuto SoC has two types of host controller interface to
support the virtualization of UFS Device.
One is the physical host(PH) that the same as conventaional UFSHCI,
and the other is the virtual host(VH) that support data transfer function only.

In this structure, the virtual host does not support like device management.
This patch skips the interface configuration part that cannot be performed
in the virtual host.

Signed-off-by: jongmin jeong <jjmin.jeong@samsung.com>
Link: https://lore.kernel.org/linux-scsi/20210709065711.25195-3-chanho61.park@samsung.com/
Bug: 190689163
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Change-Id: I65b56f898da9d57c627b5752535dd563e4fd3e8d
2021-07-09 14:27:51 +00:00
jongmin jeong
2d5ae6b787 FROMLIST: scsi: ufs: add quirk to handle broken UIC command
samsung ExynosAuto9 SoC has two types of host controller interface to
support the virtualization of UFS Device.
One is the physical host(PH) that the same as conventaional UFSHCI,
and the other is the virtual host(VH) that support data transfer function
only.

In this structure, the virtual host does not support UIC command.
To support this, we add the quirk and return 0 when the UIC command
send function is called.

Signed-off-by: jongmin jeong <jjmin.jeong@samsung.com>
Link: https://lore.kernel.org/linux-scsi/20210709065711.25195-2-chanho61.park@samsung.com/
Bug: 190689163
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Change-Id: Ie528726b29bcb643149440bf1c90eaa5995c5ac1
2021-07-09 14:27:19 +00:00
Kuan-Ying Lee
38abaebab7 ANDROID: syscall_check: add vendor hook for bpf syscall
Through this vendor hook, we can get the timing to check
current running task for the validation of its credential
and bpf operations.

Bug: 191291287

Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Change-Id: Ie4ed8df7ad66df2486fc7e52a26d9191fc0c176e
2021-07-09 13:48:53 +00:00
Kuan-Ying Lee
a7a3b31d58 ANDROID: syscall_check: add vendor hook for open syscall
Through this vendor hook, we can get the timing to check
current running task for the validation of its credential
and open operation.

Bug: 191291287

Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Change-Id: Ia644ceb02dbc230ee1d25cad3630c2c3f908e41a
2021-07-09 13:48:44 +00:00
Kuan-Ying Lee
a5543c9cd7 ANDROID: syscall_check: add vendor hook for mmap syscall
Through this vendor hook, we can get the timing to check
current running task for the validation of its credential
and related operations.

Bug: 191291287

Signed-off-by: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Change-Id: If20bd8bb8311ad10a374033734fbdc7ef61a7704
2021-07-09 13:48:33 +00:00
Chenggang Wang
1f0769279f ANDROID: GKI: Add symbol to symbol list
Leaf changes summary: 1 artifact changed (1 filtered out)
Changed leaf types summary: 0 (1 filtered out) leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function unsigned int stack_trace_save_tsk(task_struct*, unsigned long int*, unsigned int, unsigned int)'

Bug: 192766348

Change-Id: Iab695e36aadb028c9724dd09c713b2a871dbdaca
Signed-off-by: Chenggang Wang <wangchenggang@vivo.com>
Signed-off-by: Giuliano Procida <gprocida@google.com>
2021-07-09 12:50:18 +01:00
Bae Soukjin
2cff74e08c ANDROID: vendor_hooks: Add vendor hook to the net
android_vh_ptype_head:
    To add a debugging chain to ptype list

  android_vh_kfree_skb
    To sniff the dropped packet at kernel network

Bug: 163716381

Signed-off-by: Bae Soukjin <soukjin.bae@samsung.com>
Change-Id: Ide80bf0a129da31a1824d4a33026ac42be327361
(cherry picked from commit d88b2969cfa78608ad4563e5f4fa84497cc0ffa6)
(cherry picked from commit a8021ba684c584b8a4361d1680f6e466748ab012)
2021-07-09 05:02:33 +00:00
Bart Van Assche
25edba0d4d FROMLIST: scsi: ufs: Fix the SCSI abort handler
Make the following changes in ufshcd_abort():
- Return FAILED instead of SUCCESS if the abort handler notices that a SCSI
  command has already been completed. Returning SUCCESS in this case
  triggers a use-after-free and may trigger a kernel crash.
- Fix the code for aborting SCSI commands submitted to a WLUN.

The current approach for aborting SCSI commands that have been submitted to
a WLUN and that timed out is as follows:
- Report to the SCSI core that the command has completed successfully.
  Let the block layer free any data buffers associated with the command.
- Mark the command as outstanding in 'outstanding_reqs'.
- If the block layer tries to reuse the tag associated with the aborted
  command, busy-wait until the tag is freed.

This approach can result in:
- Memory corruption if the controller accesses the data buffer after the
  block layer has freed the associated data buffers.
- A race condition if ufshcd_queuecommand() or ufshcd_exec_dev_cmd()
  checks the bit that corresponds to an aborted command in 'outstanding_reqs'
  after it has been cleared and before it is reset.
- High energy consumption if ufshcd_queuecommand() repeatedly returns
  SCSI_MLQUEUE_HOST_BUSY.

Fix this by reporting to the SCSI error handler that aborting a SCSI
command failed if the SCSI command was submitted to a WLUN.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Stanley Chu <stanley.chu@mediatek.com>
Cc: Can Guo <cang@codeaurora.org>
Cc: Asutosh Das <asutoshd@codeaurora.org>
Cc: Avri Altman <avri.altman@wdc.com>
Fixes: 7a7e66c65d ("scsi: ufs: Fix a race condition between ufshcd_abort() and eh_work()")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/linux-scsi/20210701211224.17070-17-bvanassche@acm.org/
Change-Id: Ice5138ece51bf0e00dc0aa5fcd3ac74659b2afc0
BUG: 192807596
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2021-07-08 16:40:04 -07:00
xieliujie
c0efdc4a5e ANDROID: android: export kernel function vm_unmapped_area
In our vendor driver, we need to call the following function:
mm/mmap.c : unsigned long vm_unmapped_area(struct vm_unmapped_area_info *info);

Bug: 191439466
Signed-off-by: xieliujie <xieliujie@oppo.com>
Change-Id: I8eb0f8cc80ab7a0ebc9db3e3b217be94843da3ed
2021-07-08 22:12:00 +00:00
Charan Teja Reddy
964220d080 ANDROID: shmem: vendor hook in shmem_alloc_page
Some drivers can maintain its own pool of shmem pages that can reduce
the latencies in allocation of them by avoiding in getting a page from
buddy. To support this, add a vendor hook which first tries to get the
page from the driver maintained shmem pool when shmem_alloc_page is
called. If failed, it will simply fall back to the original path.

Bug: 187798288
Change-Id: I5deaf995b2e2ac40c2192096435954ee3f4a4fa8
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2021-07-08 22:06:18 +00:00
Isaac J. Manjarres
bd2ca0ba5b FROMLIST: pstore/ram: Rework logic for detecting ramoops reserved memory region
The reserved memory region for ramoops is assumed to be at a fixed
and known location when read from the devicetree. This is not desirable
in environments where it is preferred for the region to be dynamically
allocated at runtime, as opposed to it being fixed at compile time.

Change the logic for detecting the start and size of the ramoops
memory region by looking up the reserved memory region instead of
using platform_get_resource(), which assumes that the location
of the memory is known ahead of time.

Bug: 191636717
Link: https://lore.kernel.org/patchwork/patch/1451704/
Change-Id: I24066de9f4fe1f1575cb1bbb1687c37a2b1938a4
Signed-off-by: Isaac J. Manjarres <isaacm@codeaurora.org>
Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
Signed-off-by: Prasad Sodagudi <psodagud@codeaurora.org>
2021-07-08 18:16:31 +00:00
Charan Teja Reddy
daeabfe7fa ANDROID: mm: add reclaim_shmem_address_space() for faster reclaims
Add the functionality that allow users of shmem to reclaim its pages
without going through the kswapd/direct reclaim path. An example usecase
is: Say that device allocates a larger amount of shmem pages and shares
it with hardware. To faster reclaims such pages, drivers can register
the shrinkers and call reclaim_shmem_address_space().

The implementation of this function is mostly borrowed from
reclaim_address_space() implemented for per process reclaim[1].

[1] https://lore.kernel.org/patchwork/cover/378056/

Bug: 187798288
Change-Id: I03d2c3b9610612af977f89ddeabb63b8e9e50918
Signed-off-by: Charan Teja Reddy <charante@codeaurora.org>
2021-07-08 17:26:58 +00:00
Lopy Cheng
4c3dddf408 ANDROID: Update the generic ABI symbol list
Leaf changes summary: 1 artifact changed (1 filtered out)
Changed leaf types summary: 0 (1 filtered out) leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 1 Added function
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

1 Added function:

  [A] 'function int drm_atomic_set_mode_prop_for_crtc(drm_crtc_state*, drm_property_blob*)'

Bug: 143292884
Signed-off-by: Lopy Cheng <lopycheng@google.com>
Change-Id: I015c94326bf91c8fb4a44f28cc3e6933fe5c143a
Signed-off-by: Matthias Maennich <maennich@google.com>
2021-07-08 15:59:45 +01:00
Giuliano Procida
4c4d8cbdef ANDROID: GKI: refresh ABI XML
With abitidy, the XML is sorted and superfluous elements are removed.

Bug: 187831743
Change-Id: Ic6f593d448ee9abdc55ae90efe77147364c7132f
Signed-off-by: Giuliano Procida <gprocida@google.com>
2021-07-08 15:43:22 +01:00
Giuliano Procida
01e4a037d8 ANDROID: GKI: turn on TIDY_ABI
ABI XML will become smaller and nicer to diff.

Bug: 187831743
Change-Id: I9e1eb076299a9b408e9f12a81fafb111bdb0fc53
Signed-off-by: Giuliano Procida <gprocida@google.com>
2021-07-08 15:43:09 +01:00
Yang Yang
edf973fd24 ANDROID: Update symbol list for VIVO
Leaf changes summary: 20 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 20 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

20 Added functions:

  [A] 'function bool blk_bio_list_merge(request_queue*, list_head*, bio*, unsigned int)'
  [A] 'function int blk_mq_debugfs_rq_show(seq_file*, void*)'
  [A] 'function void blk_mq_run_hw_queue(blk_mq_hw_ctx*, bool)'
  [A] 'function void blk_mq_sched_request_inserted(request*)'
  [A] 'function void blk_stat_enable_accounting(request_queue*)'
  [A] 'function elevator_queue* elevator_alloc(request_queue*, elevator_type*)'
  [A] 'function int elv_register(elevator_type*)'
  [A] 'function void elv_unregister(elevator_type*)'
  [A] 'function void sbitmap_add_wait_queue(sbitmap_queue*, sbq_wait_state*, sbq_wait*)'
  [A] 'function bool sbitmap_any_bit_set(const sbitmap*)'
  [A] 'function void sbitmap_del_wait_queue(sbq_wait*)'
  [A] 'function int sbitmap_init_node(sbitmap*, unsigned int, int, gfp_t, int)'
  [A] 'function void sbitmap_queue_clear(sbitmap_queue*, unsigned int, unsigned int)'
  [A] 'function int sbitmap_queue_init_node(sbitmap_queue*, unsigned int, int, bool, gfp_t, int)'
  [A] 'function void sbitmap_queue_min_shallow_depth(sbitmap_queue*, unsigned int)'
  [A] 'function void sbitmap_queue_resize(sbitmap_queue*, unsigned int)'
  [A] 'function void sbitmap_queue_show(sbitmap_queue*, seq_file*)'
  [A] 'function list_head* seq_list_next(void*, list_head*, loff_t*)'
  [A] 'function list_head* seq_list_start(list_head*, loff_t)'
  [A] 'function int timer_reduce(timer_list*, unsigned long int)'

Bug: 193099837
Change-Id: I5d0220aaa2fd89f3641cfeb0bc4a2e18d051a4b3
Signed-off-by: Yang Yang <yang.yang@vivo.com>
2021-07-08 10:36:41 +00:00
Maciej Żenczykowski
1702d2c8b7 FROMGIT: net: cdc_ncm: switch to eth%d interface naming
[ Upstream commit c1a3d40673 ]

This is meant to make the host side cdc_ncm interface consistently
named just like the older CDC protocols: cdc_ether & cdc_ecm
(and even rndis_host), which all use 'FLAG_ETHER | FLAG_POINTTOPOINT'.

include/linux/usb/usbnet.h:
  #define FLAG_ETHER	0x0020		/* maybe use "eth%d" names */
  #define FLAG_WLAN	0x0080		/* use "wlan%d" names */
  #define FLAG_WWAN	0x0400		/* use "wwan%d" names */
  #define FLAG_POINTTOPOINT 0x1000	/* possibly use "usb%d" names */

drivers/net/usb/usbnet.c @ line 1711:
  strcpy (net->name, "usb%d");
  ...
  // heuristic:  "usb%d" for links we know are two-host,
  // else "eth%d" when there's reasonable doubt.  userspace
  // can rename the link if it knows better.
  if ((dev->driver_info->flags & FLAG_ETHER) != 0 &&
      ((dev->driver_info->flags & FLAG_POINTTOPOINT) == 0 ||
       (net->dev_addr [0] & 0x02) == 0))
          strcpy (net->name, "eth%d");
  /* WLAN devices should always be named "wlan%d" */
  if ((dev->driver_info->flags & FLAG_WLAN) != 0)
          strcpy(net->name, "wlan%d");
  /* WWAN devices should always be named "wwan%d" */
  if ((dev->driver_info->flags & FLAG_WWAN) != 0)
          strcpy(net->name, "wwan%d");

So by using ETHER | POINTTOPOINT the interface naming is
either usb%d or eth%d based on the global uniqueness of the
mac address of the device.

Without this 2.5gbps ethernet dongles which all seem to use the cdc_ncm
driver end up being called usb%d instead of eth%d even though they're
definitely not two-host.  (All 1gbps & 5gbps ethernet usb dongles I've
tested don't hit this problem due to use of different drivers, primarily
r8152 and aqc111)

Fixes tag is based purely on git blame, and is really just here to make
sure this hits LTS branches newer than v4.5.

Cc: Lorenzo Colitti <lorenzo@google.com>
Fixes: 4d06dd537f ("cdc_ncm: do not call usbnet_link_change from cdc_ncm_bind")
Signed-off-by: Maciej Żenczykowski <maze@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 11fac7e912 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=linux-5.10.y&id=11fac7e9127078fe3275642742cf5e2336fa934a)
Bug: 181923048
Change-Id: If746c35d6a91c3071afbbca68466438fcd7d8f55
2021-07-08 04:01:26 +00:00
Chanho Park
f4d6e8324c ANDROID: GKI: add allowed GKI symbol for Exynosauto SoC
This patch adds below 48 symbols for Exynosauto SoC.
Notable changes:
- *pci* symbols for PCIe EP(Endpoint)
- mdio / phy / posix_clock for Ethernet / Phy and PTP

Leaf changes summary: 48 artifacts changed
Changed leaf types summary: 0 leaf type changed
Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 48 Added functions
Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable

48 Added functions:

  [A] 'function void __napi_schedule_irqoff(napi_struct*)'
  [A] 'function int device_get_phy_mode(device*)'
  [A] 'function void dql_completed(dql*, unsigned int)'
  [A] 'function void dql_reset(dql*)'
  [A] 'function int dw_pcie_ep_init(dw_pcie_ep*)'
  [A] 'function u32 dw_pcie_read_dbi(dw_pcie*, u32, size_t)'
  [A] 'function void dw_pcie_write_dbi(dw_pcie*, u32, size_t, u32)'
  [A] 'function void ktime_get_snapshot(system_time_snapshot*)'
  [A] 'function phy_device* mdiobus_get_phy(mii_bus*, int)'
  [A] 'function int mdiobus_read(mii_bus*, int, u32)'
  [A] 'function int mdiobus_write(mii_bus*, int, u32, u16)'
  [A] 'function void netdev_alert(const net_device*, const char*, ...)'
  [A] 'function void* of_get_mac_address(device_node*)'
  [A] 'function int of_mdiobus_register(mii_bus*, device_node*)'
  [A] 'function void of_phy_deregister_fixed_link(device_node*)'
  [A] 'function bool of_phy_is_fixed_link(device_node*)'
  [A] 'function int of_phy_register_fixed_link(device_node*)'
  [A] 'function void pci_epc_clear_bar(pci_epc*, u8, pci_epf_bar*)'
  [A] 'function int pci_epc_map_addr(pci_epc*, u8, phys_addr_t, u64, size_t)'
  [A] 'function void* pci_epc_mem_alloc_addr(pci_epc*, phys_addr_t*, size_t)'
  [A] 'function void pci_epc_mem_free_addr(pci_epc*, phys_addr_t, void*, size_t)'
  [A] 'function int pci_epc_set_bar(pci_epc*, u8, pci_epf_bar*)'
  [A] 'function void pci_epc_unmap_addr(pci_epc*, u8, phys_addr_t)'
  [A] 'function int pci_num_vf(pci_dev*)'
  [A] 'function int pcie_set_mps(pci_dev*, int)'
  [A] 'function void phy_attached_info(phy_device*)'
  [A] 'function int phy_ethtool_get_eee(phy_device*, ethtool_eee*)'
  [A] 'function void phy_ethtool_ksettings_get(phy_device*, ethtool_link_ksettings*)'
  [A] 'function int phy_ethtool_ksettings_set(phy_device*, const ethtool_link_ksettings*)'
  [A] 'function int phy_ethtool_set_eee(phy_device*, ethtool_eee*)'
  [A] 'function int phy_get_eee_err(phy_device*)'
  [A] 'function int phy_init_eee(phy_device*, bool)'
  [A] 'function void phy_mac_interrupt(phy_device*)'
  [A] 'function int phy_mii_ioctl(phy_device*, ifreq*, int)'
  [A] 'function int phy_resume(phy_device*)'
  [A] 'function int phy_start_aneg(phy_device*)'
  [A] 'function int phy_suspend(phy_device*)'
  [A] 'function int phylink_connect_phy(phylink*, phy_device*)'
  [A] 'function phylink* phylink_create(phylink_config*, fwnode_handle*, phy_interface_t, const phylink_mac_ops*)'
  [A] 'function void phylink_destroy(phylink*)'
  [A] 'function int phylink_of_phy_connect(phylink*, device_node*, u32)'
  [A] 'function void phylink_set_port_modes(unsigned long int*)'
  [A] 'function void phylink_start(phylink*)'
  [A] 'function int posix_clock_register(posix_clock*, device*)'
  [A] 'function void posix_clock_unregister(posix_clock*)'
  [A] 'function void snd_pcm_release_substream(snd_pcm_substream*)'
  [A] 'function int snd_soc_dai_set_tristate(snd_soc_dai*, int)'
  [A] 'function int ufshcd_init(ufs_hba*, void*, unsigned int)'

Bug: 192805988
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Change-Id: I284d37d32d1808f3f628e84bb2900f5f2f1bede5
2021-07-08 03:46:00 +00:00
Liangliang Li
444a0b7752 ANDROID: mm: add vendor hook for vmpressure
Add vendor hook for bypass vmpressure accounting when doing oem's
custom memory reclaim.

Bug: 191534577

Change-Id: I0c2263e03943596312aa6b01cf8506f2ae87213e
Signed-off-by: Liangliang Li <liliangliang@vivo.com>
2021-07-07 23:23:10 +00:00
Eric Biggers
c799c6644b ANDROID: fips140: adjust some log messages
Downgrade some expected log messages from pr_warn() to pr_info().

Also remove "FIPS 140" from some log messages since the messages are
already prefixed with "fips140: " (the name of the module) which makes
it redundant.

Bug: 153614920
Bug: 188620248
Change-Id: I94055d7a5a86a770fcf38e958e7d7497b4bafdf0
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-07 20:12:46 +00:00
Eric Biggers
091338cb39 ANDROID: fips140: add missing static keyword to fips140_init()
Avoid a compiler warning about there being no previous declaration for
fips140_init().

Bug: 153614920
Bug: 188620248
Change-Id: I8192c597d16ff6f43a0e9cb45a89969666b3875e
Signed-off-by: Eric Biggers <ebiggers@google.com>
2021-07-07 18:25:26 +00:00
Chanho Park
70bfd6a7e0 ANDROID: GKI: update allowed list for exynosauto SoC
This patch is for updating GKI allowed symbol list without adding any
new symbol. Next patch will introduce newly added symbols for Exynosauto
SoC GKI vendor modules.

Bug: 192805988
Signed-off-by: Chanho Park <chanho61.park@samsung.com>
Change-Id: I6afec1983c83c032d9bd34bb330faecfd0140bc4
2021-07-07 16:36:39 +00:00
Lee Jones
3e3147b280 UPSTREAM: scsi: ufs: ufshcd: Fix some function doc-rot
Fixes the following W=1 kernel build warning(s):

 drivers/scsi/ufs/ufshcd.c:6603: warning: Function parameter or member 'hba' not described in 'ufshcd_try_to_abort_task'
 drivers/scsi/ufs/ufshcd.c:6603: warning: Function parameter or member 'tag' not described in 'ufshcd_try_to_abort_task'
 drivers/scsi/ufs/ufshcd.c:6603: warning: Excess function parameter 'cmd' description in 'ufshcd_try_to_abort_task'

Link: https://lore.kernel.org/r/20201102142359.561122-12-lee.jones@linaro.org
Cc: Alim Akhtar <alim.akhtar@samsung.com>
Cc: Avri Altman <avri.altman@wdc.com>
Cc: Santosh Yaraganavi <santosh.sy@samsung.com>
Cc: Vinayak Holikatti <h.vinayak@samsung.com>
Signed-off-by: Lee Jones <lee.jones@linaro.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit d23ec0b610 git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master)
Change-Id: I9540b80ceb7cd28629e86101b3b0b561762b6cde
Signed-off-by: Bart Van Assche <bvanassche@google.com>
2021-07-07 09:06:07 -07:00