Commit graph

893,875 commits

Author SHA1 Message Date
Tetsuhiro Kohada
cff207c559 exfat: add boot region verification
Add Boot-Regions verification specified in exFAT specification.
Note that the checksum type is strongly related to the raw structure,
so the'u32 'type is used to clarify the number of bits.

Signed-off-by: Tetsuhiro Kohada <kohada.t2@gmail.com>
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 476189c0ef3b658de3f6b89fd0fdeb6dc451b564
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:42 +08:00
Tetsuhiro Kohada
88d53600ae exfat: separate the boot sector analysis
Separate the boot sector analysis to read_boot_sector().
And add a check for the fs_name field.
Furthermore, add a strict consistency check, because overlapping areas
can cause serious corruption.

Signed-off-by: Tetsuhiro Kohada <kohada.t2@gmail.com>
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 33404a159828a97fefada0d8f4cf910873b8e9f1
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:41 +08:00
Tetsuhiro Kohada
99d787fc66 exfat: redefine PBR as boot_sector
Aggregate PBR related definitions and redefine as "boot_sector" to comply
with the exFAT specification.
And, rename variable names including 'pbr'.

Signed-off-by: Tetsuhiro Kohada <kohada.t2@gmail.com>
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 181a9e8009a8a8bdb19c2e24eeeae7d8e77c8c47
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:39 +08:00
Tetsuhiro Kohada
73da91e6fa exfat: optimize dir-cache
Optimize directory access based on exfat_entry_set_cache.
 - Hold bh instead of copied d-entry.
 - Modify bh->data directly instead of the copied d-entry.
 - Write back the retained bh instead of rescanning the d-entry-set.
And
 - Remove unused cache related definitions.

Signed-off-by: Tetsuhiro Kohada <kohada.tetsuhiro@dc.mitsubishielectric.co.jp>
Reviewed-by: Sungjong Seo <sj1557.seo@samsung.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 943af1fdacfebe4ff13430655abc460a5e1072f7
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:38 +08:00
Tetsuhiro Kohada
97257ea7d6 exfat: replace 'time_ms' with 'time_cs'
Replace time_ms  with time_cs in the file directory entry structure
and related functions.

The unit of create_time_ms/modify_time_ms in File Directory Entry are not
'milli-second', but 'centi-second'.
The exfat specification uses the term '10ms', but instead use 'cs' as in
msdos_fs.h.

Signed-off-by: Tetsuhiro Kohada <kohada.t2@gmail.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: ed0f84d30ba65f44bed2739572c7ab0fdeed4004
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:36 +08:00
Jason Yan
1651428277 exfat: remove the assignment of 0 to bool variable
There is no need to init 'sync' in exfat_set_vol_flags().
This also fixes the following coccicheck warning:

fs/exfat/super.c:104:6-10: WARNING: Assignment of 0/1 to bool variable

Signed-off-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: cdc06129a6cea0e4863fa2b34a0c132c6eb7278b
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:34 +08:00
Pali Rohár
95e5256add exfat: Remove unused functions exfat_high_surrogate() and exfat_low_surrogate()
After applying previous two patches, these functions are not used anymore.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 6778337a7a4e51ec9fa4a76846d34e8a66ca6418
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:33 +08:00
Pali Rohár
abbeaaddc1 exfat: Simplify exfat_utf8_d_hash() for code points above U+FFFF
Function partial_name_hash() takes long type value into which can be stored
one Unicode code point. Therefore conversion from UTF-32 to UTF-16 is not
needed.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: dddf7da3985ee144b46ee287e81e47b9ee8bb980
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:31 +08:00
Joe Perches
f1ea0af86b exfat: Use a more common logging style
Remove the direct use of KERN_<LEVEL> in functions by creating
separate exfat_<level> macros.

Miscellanea:

o Remove several unnecessary terminating newlines in formats
o Realign arguments and fit to 80 columns where appropriate

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: d1727d55c0327efdba2a5bad7801d509b721fef3
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:29 +08:00
Pali Rohár
6d48c579cc exfat: Simplify exfat_utf8_d_cmp() for code points above U+FFFF
If two Unicode code points represented in UTF-16 are different then also
their UTF-32 representation must be different. Therefore conversion from
UTF-32 to UTF-16 is not needed.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 197298a64983e2beaf1a87413daff3044b4f3821
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:22:24 +08:00
Wei Yongjun
825b6f8a99 exfat: fix possible memory leak in exfat_find()
'es' is malloced from exfat_get_dentry_set() in exfat_find() and should
be freed before leaving from the error handling cases, otherwise it will
cause memory leak.

Fixes: 5f2aa075070c ("exfat: add inode operations")
Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 94182167ec730dadcaea5fbc6bb8f1136966ef66
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 11:21:52 +08:00
Eric Sandeen
2e00273fd9 exfat: use iter_file_splice_write
Doing copy_file_range() on exfat with a file opened for direct IO leads
to an -EFAULT:

       -c "copy_range -d 16384 -l 16384 -f 0" /mnt/test/junk
copy_range: Bad address

and the reason seems to be that we go through:

default_file_splice_write
 splice_from_pipe
  __splice_from_pipe
   write_pipe_buf
    __kernel_write
     new_sync_write
      generic_file_write_iter
       generic_file_direct_write
        exfat_direct_IO
         do_blockdev_direct_IO
          iov_iter_get_pages

and land in iterate_all_kinds(), which does "return -EFAULT" for our kvec
iter.

Setting exfat's splice_write to iter_file_splice_write fixes this and lets
fsx (which originally detected the problem) run to success from
the xfstests harness.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 035779483072ff7854943dc0cbae82c4e0070d15
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 10:46:32 +08:00
Eric Sandeen
ab2add7a46 exfat: truncate atimes to 2s granularity
The timestamp for access_time has double seconds granularity(There is no
10msIncrement field for access_time unlike create/modify_time).
exfat's atimes are restricted to only 2s granularity so after
we set an atime, round it down to the nearest 2s and set the
sub-second component of the timestamp to 0.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 81df1ad40644b706a1cdbd28a1471f9f0c0ea3e8
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 10:45:35 +08:00
Eric Sandeen
aeabe3d3e8 exfat: properly set s_time_gran
The s_time_gran superblock field indicates the on-disk nanosecond
granularity of timestamps, and for exfat that seems to be 10ms, so
set s_time_gran to 10000000ns. Without this, in-memory timestamps
change when they get re-read from disk.

Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: 674a9985b8e35288225f2b67829a7dee3bf761da
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 10:44:24 +08:00
Tetsuhiro Kohada
26b4ea6821 exfat: remove 'bps' mount-option
remount fails because exfat_show_options() returns unsupported
option 'bps'.
> # mount -o ro,remount
> exfat: Unknown parameter 'bps'

To fix the problem, just remove 'bps' option from exfat_show_options().

Signed-off-by: Tetsuhiro Kohada <Kohada.Tetsuhiro@dc.MitsubishiElectric.co.jp>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: cbd445d9a9bdb7020beee2477577b9472cca60be
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 10:43:28 +08:00
Tetsuhiro Kohada
8d5268375f exfat: Unify access to the boot sector
Unify access to boot sector via 'sbi->pbr_bh'.
This fixes vol_flags inconsistency at read failed in fs_set_vol_flags(),
and buffer_head leak in __exfat_fill_super().

Signed-off-by: Tetsuhiro Kohada <Kohada.Tetsuhiro@dc.MitsubishiElectric.co.jp>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: b0516833d8096c40ead3169c90d87392fb5f8f45
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 10:42:32 +08:00
Thomas Backlund
f3a0472900 exfat: add missing MODULE_ALIAS_FS()
This adds the necessary MODULE_ALIAS_FS() to exfat so the module gets
automatically loaded when an exfat filesystem is mounted.

Signed-off-by: Thomas Backlund <tmb@mageia.org>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: cd76ac258cd92a6425cb68f95a76d6abdce5395a
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 10:40:14 +08:00
Pali Rohár
5d49b18801 exfat: Fix discard support
Discard support was always unconditionally disabled. Now it is disabled
only in the case when blk_queue_discard() returns false.

Signed-off-by: Pali Rohár <pali@kernel.org>
Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Git-commit: b7e038a92449f191395fbb86538b14093c529833
Git-repo: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Signed-off-by: lixiang <lixiang@codeaurora.org>
2021-02-22 10:38:01 +08:00
qctecmdr
db5f5ed622 Merge "sched/walt: Move scheduler techpack to kernel" 2021-02-07 22:42:28 -08:00
qctecmdr
14507f613f Merge "cnss2: Use CONFIG_PCI_MSM to protect MSM PCIe APIs" 2021-02-07 22:42:28 -08:00
qctecmdr
0667a1b5dc Merge "usb: dwc3: Issue ENDTRANSFER cmd on ep0 unconditionally" 2021-02-07 15:30:41 -08:00
qctecmdr
b80f916238 Merge "drivers: soc: qcom: rimps_memlat: check cpu in idle path" 2021-02-07 11:45:28 -08:00
qctecmdr
aeeaa66033 Merge "input: touchscreen: focaltech: use proper dev" 2021-02-07 11:45:27 -08:00
qctecmdr
baeb717e11 Merge "net: cnss: add snapshot of cnss platform driver" 2021-02-07 11:45:27 -08:00
qctecmdr
5b34e22e77 Merge "usb: phy: qusb: Use scm call to update LVL_SHIFTER register" 2021-02-07 11:45:26 -08:00
qctecmdr
c1813e9149 Merge "cnss2: Update qdss config file name" 2021-02-07 11:45:26 -08:00
qctecmdr
86401a1787 Merge "arm64: defconfig: enable qcom_scm/fastscvp on gen3auto" 2021-02-06 22:12:47 -08:00
qctecmdr
238b1e37b4 Merge "perf: Add exclude_idle support for armv7 PMU" 2021-02-06 05:10:46 -08:00
qctecmdr
68fd89baf1 Merge "leds: leds-qti-tri-led: Don't print error log for -EPROBE_DEFER" 2021-02-06 05:10:46 -08:00
qctecmdr
9e93c40032 Merge "usb: phy: snps: Ensure SIDDQ is disabled for proper functioning" 2021-02-06 05:10:46 -08:00
qctecmdr
46bb8e6b35 Merge "pinctrl: add restore function for sx150x" 2021-02-06 05:10:45 -08:00
qctecmdr
ac5c618ac5 Merge "net: qrtr: fix tx flow memory leak" 2021-02-06 05:10:45 -08:00
qctecmdr
dc655ccb0e Merge "soc: qcom: Reset watchdog before setting bite time" 2021-02-06 05:10:44 -08:00
qctecmdr
fec650e1be Merge "cnss2: Fix error case print for dev_boot debugfs" 2021-02-06 05:10:44 -08:00
Laisheng Hu
6152c18649 arm64: defconfig: enable qcom_scm/fastscvp on gen3auto
enable qcom_scm and fastcvpd for vidc driver.

Change-Id: Idb17a079e1472e1d2a853d2ea68da6933768d7e1
Signed-off-by: Laisheng Hu <laisheng@codeaurora.org>
2021-02-06 04:33:58 -08:00
Pratham Pratap
42a90ced12 usb: dwc3: Issue ENDTRANSFER cmd on ep0 unconditionally
Consider a case where ep0 is not in setup stage and composition
switch happens. Currently DWC3_DEPCMD_ENDTRANSFER command is not
issued on ep0 which means that the transfers are not flushed out
and driver clears the run/stop bit hence stopping the controller.
Now as soon as driver sets the run/stop bit controller tries to
access the trb from the previous session which is already unmapped
resulting in SMMU fault.

Fix this by unconditionally issuing DWC3_DEPCMD_ENDTRANSFER
command on ep0. Although it is not specified in the data book
but if we know for sure that we are anyway going to stop the
controller then we can issue ENDTRANSFER command on ep0.

Change-Id: Ic6ee570acc8926897d3b6042181a501a47438d92
Signed-off-by: Pratham Pratap <prathampratap@codeaurora.org>
2021-02-05 22:31:13 -08:00
qctecmdr
9a855e1c71 Merge "pci: switch: Add snapshot of PCIe switch driver" 2021-02-05 18:01:29 -08:00
qctecmdr
47d8e027d9 Merge "usb: dwc3: core: Select UTMI clock before core_soft_reset" 2021-02-05 18:01:28 -08:00
qctecmdr
64f86ae513 Merge "pci: msm: msm_pcie_iatu_config API clean" 2021-02-05 18:01:28 -08:00
qctecmdr
9d0e285207 Merge "msm: pcie: provide client the ability to control PCIe target_link_speed" 2021-02-05 18:01:28 -08:00
qctecmdr
d8ba3161ed Merge "cnss2: Add support for PCI wake GPIO" 2021-02-05 18:01:27 -08:00
Yue Ma
2dc22bc62d cnss2: Use CONFIG_PCI_MSM to protect MSM PCIe APIs
This can ease the complexity to port CNSS2 driver to non-MSM
platforms while still be able to maintain the compatibility.

Change-Id: I268cdd90c59085b34aa2fe3c3b845d60c4e2a417
Signed-off-by: Yue Ma <yuem@codeaurora.org>
2021-02-05 17:31:07 -08:00
Yue Ma
dc0ecaca75 cnss2: Set initial target PCIe link speed to Gen2 for QCA6490
Since there may be link issues if QCA6490 device boots up with Gen3
link speed, always set initial target PCIe link speed to Gen2. Device
is able to change it (back) later at any time if needed.

Change-Id: I9d617d71926fe98e59e67aff772984878e0a2689
Signed-off-by: Yue Ma <yuem@codeaurora.org>
2021-02-05 17:30:27 -08:00
Dennis Cagle
878506879e defconfig: sdxlemur: Remove slub debug config
Remove CONFIG_SLUB_DEBUG_ON from debug variant for performance
reasons. Also remove redundant HARDENED_USERCOPY from debug config
since this gets copied over from the standard config.

Change-Id: I7c6fc8620290cf126ced046f82811e9e39bc2a60
Signed-off-by: Dennis Cagle <dcagle@codeaurora.org>
2021-02-05 14:35:31 -08:00
Tony Truong
d0cb56ec45 msm: pcie: provide client the ability to control PCIe target_link_speed
There are usecases where clients want to change the maximum GEN
speed that PCIe can link up with. Provide clients the ability to
control the maximum PCIe GEN speed to for such usecases.

Change-Id: I834bee2063133546c9b0ebac2d5328ffbc5ceac6
Signed-off-by: Tony Truong <truong@codeaurora.org>
2021-02-05 12:54:14 -08:00
Elson Roy Serrao
eabbb7f853 usb: dwc3: core: Select UTMI clock before core_soft_reset
In HS Only mode of dwc3 controller version 1.9A, UTMI clock needs
to be selected before core soft reset as per the HPG sequence.
Or else the core soft reset fails, leading to enumeration
failure. Hence select UTMI clock before performing
SOFT_RESET operation.

Change-Id: I12d4a992872eecbfc38825282559cd4d592c3896
Signed-off-by: Elson Roy Serrao <eserrao@codeaurora.org>
2021-02-05 11:12:16 -08:00
qctecmdr
47f285b88f Merge "cfg80211: Indicate support for configuring PMKSA timer params" 2021-02-04 23:09:29 -08:00
qctecmdr
40fb7865c8 Merge "defconfig: Configure MaxPower to 900mA on sdxnightjar" 2021-02-04 23:09:28 -08:00
qctecmdr
a38ac852dc Merge "Revert "cnss2: Dump mhi debug regs on receiving mhi WAKE event cb"" 2021-02-04 23:09:28 -08:00
qctecmdr
c390f8a32f Merge "regulator: qpnp-lcdb: remove workaround for LCDB regulation issue" 2021-02-04 23:09:28 -08:00