19 Commits

Author SHA1 Message Date
UtsavBalar1231
503cd25d37 init: completely remove Early init services support
- we don't have a car with this kernel

Revert "init: use unbound instead of highpriority wq in early init"
Revert "Early Services: init: fs:  synchronize Early Services with init"
Revert "init: support early init on SA8195"
Revert "init: support early userspace"
Revert "init: move more subsystems into early init framework"
Revert "init: define early init functions for rootfs mounting"
Revert "init: add new early param and define early initcall macros"
Revert "init: define early init functions needed by all subsystems"
Revert "init: define early init functions for display subsystem"
Revert "init: define early init functions for display subsystem"
Revert "init: define early init functions for camera subsystem"
Revert "msm: ais: define early init for camera"

Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
2020-07-30 21:51:02 +05:30
UtsavBalar1231
d9b983b161 Merge tag 'LV.AU.0.1.0.r1-11000-gen3meta.0' into q
"LV.AU.0.1.0.r1-11000-gen3meta.0"

* tag 'LV.AU.0.1.0.r1-11000-gen3meta.0' of https://source.codeaurora.org/quic/la/kernel/msm-4.14:
  ARM: dts: msm: multi-card for SA6155/SA8155/SA8195
  early init: adjust early devices for 8195
  ARM: dts: qcom: Add device nodes for second AFE rx and proxy tx devices
  msm: ais: define early init for camera
  msm: ais: fix cci read return value issue
  ARM: dts: msm: remove default SA6155 DP pinctrl
  init: define early init functions for display subsystem
  msm: adsprpc: Fix array index underflow problem
  init: support early init framework
  msm: ais: fix csid fatal error issue
  ARM: dts: msm: add support of DP PHY bond mode for SA8195p
  ARM: dts: msm: added 2nd DP and eDP for SA8195p
  ARM: dts: msm: revert 2nd DP and eDP related DT modification
  drm/msm/sde: Add data structure for ROI MISR
  Revert "ARM: dts: msm: remove 2nd DP and eDP from sa8195p"
  ARM: dts: msm: include correct dtsi for sa8195p-v2-adp-air-overlay.dts
  arm64: Allow boot on cpus other than logical cpu 0
  init: use unbound instead of highpriority wq in early init
  init: support early init on SA8195
  diag: Add protection while accessing diag client map
  Revert "ARM: dts: msm: Enabling dynamic splash on DSI and DP displays (sa8195)"
  drm/msm/shd: Update topology name in shd atomic check
  Set req_id in trigger notify and slot increment
  ARM: dts: msm: Enabling dynamic splash on DSI and DP displays (sa8195)
  drm/msm/sde: Move roi number check to atomic_check stage
  drm/msm/shd: Fix can't register irq of roi misr
  net: stmmac: use correct header type
  dtsi: SA8155: Early ethernet changes
  defconfig: SA8155: Enable ebtables vlan filters
  ARM: dts: msm: Add roi misr register address for sm6150
  ARM: dts: msm: Add roi misr register address for sdmshrike
  ARM: dts: msm: Add roi misr register address for sm8150
  drm/msm/sde: add roi misr support
  drm/msm/sde: skip rsc client creation for external encoders
  init: define early init functions for camera subsystem
  drm/msm/dsi-staging: add support for output CSI-2 compatible stream
  drm/msm/dsi-staging: add missing RGB color re-order
  drm/msm/shd: fix null pointer during pm_suspend
  msm/shd: Resolve conflictions in HEAD
  mm/free_area_init_core: skip memmap_init for holes
  drm/msm: add boot marker
  init: move more subsystems into early init framework
  init: define early init functions for display subsystem
  init: define early devices needed by all subsystems
  init: support early userspace
  init: define early init functions for rootfs mounting
  init: define early init functions needed by all subsystems
  init: add new early param and define early initcall macros
  arm: dts: msm: switch to 8 channel ubwc for sdmshrike GPU
  ARM: dts: msm: update macro tile mode for sdmshrike display
  msm: kgsl: Add macrotiling channels property
  initialize the return value to 0 for irq request
  msm: ais: handle timestamp for each RDI of IFE
  drm/msm/sde: fix LM split index for single LM case
  drm/msm/shd: add quad lm support to shared display
  drm/msm-lease: add 32bit ioctl support for msm lease
  drm/msm-lease: fix potential racing condition for msm lease
  drm/msm/shd: populate base topology for shared virtual display
  drm/msm/shd: wait additional vsync when all planes are detached
  defconfig: sdmshrike: Enable config for dyn splash
  drm/msm/sde: add plane layout check and global coordinate support
  drm/msm/sde: add num_mixers in sde_crtc_state
  drm/msm/sde: fix plane sorting with layout set
  drm/msm/dp: accumulated fixes from dev branch
  drm/msm/sde: add topology_name in crtc state
  drm/msm/sde: set pipes per stage to 4 to support quad lm
  ARM: dts: msm: add support of DP PHY bond mode for SA8195p
  drm/msm/dp: add DP PHY bond mode support
  clk/qcom/mdss: added PHY bond mode for 7nm DP/USB PHY
  ARM: dts: msm: added 2nd DP and eDP for SA8195p
  clk/qcom/mdss: added secondary DP/USB PHY PLL support
  drm/msm/dp: added 7nm eDP/DP PHY 5.0.0 support
  clk/qcom/mdss: added 7nm eDP/DP PHY support
  drm/msm/dp: add multiple DP instances support for DP/USB combo PHY
  drm/msm/dp: add force bond mode for dp-sst
  drm/msm/dp: add bond tiled mode support
  drm/msm/dp: add support to multiple dp instances
  drm/msm/dp: add force bond mode support
  drm/msm/dp: add tiled dp-mst mode support
  drm/msm/dp: read sink caps when dp clock is enabled
  drm: msm: sde: skip rm resources pair mask checks for 4LM topologies
  disp: msm: sde: adjust encoders to support 4LM topologies
  disp: msm: sde: add plane L/R property to support 4LM topologies
  disp: msm: sde: expand max mixers to 4 to support 4LM topologies
  drm/msm/sde: add 4LM topology variants in resource manager
  drm/msm/sde: fix topology lookup table when ctl version is used
  ARM: dts: msm: update UBWC highest bank bit for sdmshrike display
  drm/msm/shd: fix null atomic state during mode_fixup
  ARM: dts: msm: add dp-mst simulator for debug mode
  drm/msm/dp: use dp_msm_sim for dp-mst simulation
  drm/msm/dp: add dp-mst sideband simulator
  drm/msm/dp: add dp-mst protocol simulator helper
  drm/msm/dp: add dp aux bridge framework support
  drm/msm/dp: add mixer count check in dp mode validation
  drm/msm/dp: fix widebus-enable setting for dp
  drm/msm/dp: update mode validation logic for widebus
  drm: Check dp extended receiver capabilities
  drm/msm: update topology based on clock requirement
  drm: msm: dp: correct the resolution width check in get_mode_info
  temp fix 8195 start camera fail
  Revert "clk: Parallelization of clk_debug_init"
  defconfig: sm8150: Enable led-qcom-clk driver
  clk: qcom: gcc: Add support for 80KHz and 100KHz for gp clocks
  clk: Parallelization of clk_debug_init
  mhi: core: avoid memset of BHIE registers
  ARM: dts: msm: Add device tree node for GP2 clock driven led
  leds: qcom-clk: Add clock controller based PWM driver
  msm: ais: free gpio and irq when kill ais_server
  ARM: dts: msm: Add NVMe for sa8195p adp board
  defconfig: msm: Enable NVMe for sdmshrike
  ARM: dts: msm: add dload dump type for sa8195p
  defconfig: msm: enable minidump for sa8195p
  clk: qcom: camcc: Update post_div table according to freq plan
  drm/msm/sde: fix null pointer in sde connector atomic check
  ARM: dts: msm: Add pcie1~3 support for sa8195p
  msm: msi: allow accesses to device MSI registers when using QGIC
  Dm: init: Enable rootfs mount as dm-verity during boot without ramdisk
  drm/msm/sde: fix null pointer in sde connector atomic check
  scsi: ufs: Fix IOCTL error checking for input buffer
  mhi: Don't do memset_io with RXVEC for qcn7605
  serial: msm_geni_serial: Disable Flow only for HSUART usecase
  disp: msm: dsi: add check before buffer copy
  PM / devfreq: gpubw_mon: Add null check for governor private data
  ARM64: dts: msm: delete the appsbl-qseecom-support property
  Revert "init: support early userspace"
  msm: ais: re-use camnoc info for 8195
  msm: ais: sync to latest mobile camera
  msm: ais: allow sensor power down from init state
  msm: ais: fix pause/resume issue
  defconfig: Enable debug clock controller for sdmshrike
  ARM: dts: msm: Add the clock_debugcc node on sdmshrike
  clk: qcom: Add debug clock controller for sdmshrike
  ARM: dts: msm: Support GPU clock upto 670Mhz for SC8180
  init: support early userspace
  scsi: ufs: sysfs: health descriptor
  drm/msm/sde: change backlight setup to support shared dsi display
  drm/msm/shd: add dsi_display base in shd_display
  Revert "msm: ais: fastforward to PC398"
  ais: refine gerrit 2840559 to fix its side effects
  mhi: Don't do memset_io with RXVEC for qcn7605
  msm: ais: change maximum context numbers to 32
  msm: ais: specify CPU for IFE interrupt
  Increase stabilize for multiple camera
  msm: ais: Remove the active_req_cnt < 2 limitation
  drm/msm-lease: fix for markings
  cnss2: set iova_start and iova_stop to physical RAM range
  scsi: ufs: sysfs: health descriptor
  Fix sa8195p boot panic.
  dts: sa8195: fix display can't work in DP_MST mode
  drm/msm-lease: create DRM MSM LEASE driver
  drm: squash changes for drm lease from upstream
  mhi: Don't do memset_io with RXVEC for qcn7605
  Dm: init: Enable rootfs mount as dm-verity during boot without ramdisk.
  Revert "msm: adsprpc: API to get DSP capability"
  msm: camera : Lock Implementation for avoid race condition
  msm: kgsl: Fix race condition while making page as dirty
  net: sockev: avoid races between sockev and socket_close
  Revert "msm: ais: Validate packet params against cpu buffer length"
  Clean unused files: cam_cdm_hw_core.c/cam_cdm_virtual_core.c/cam_fd_hw_mgr.c/cam_icp_context.c.
  fix blacklist issue
  msm: ais: Validate packet params against cpu buffer length
  ARM: dts: fix snd card probe error for sa8155 lv
  msm: ais: resync ais to PC365 camera kernel
  msm: camera: core : Validate the dev name during the node ioctl handler
  drm: increase drm open count to 1024

Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
2020-07-23 13:40:08 +05:30
Jaegeuk Kim
684846312f block: fix wrong dun size when merging IOs
In the back merge, we should have used blk_rq_sectors() to check consecutive
duns.

Bug: 137235191
Change-Id: I11f3a8645ab4874115bcd6c2256997a7806aa87f
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Signed-off-by: UtsavBalar1231 <utsavbalar1231@gmail.com>
2020-06-15 10:58:20 +05:30
Jiacheng Zheng
8653acbe77 init: define early init functions needed by all subsystems
In our early userspace solution, we run some init functions
that are commonly needed by all subsystems first before we
start all subsystems in parallel. Usually it includes init
drivers for clocks, regulators, bus components, iommu and
software initcalls that are needed by multiple subsystems.
We define them by our early_XXX macros so pointers for
these init functions will be saved into our early initcall
sections and will be called in predefined sequence in our
early solution if early_userspace is added in cmdline. And
if early_userspace is not defined in cmdline, the original
init functions will run as usual without any change. This
way, the normal booting procedure of all projects will not
be influenced since they do not have early_userspace in
their cmdline.

Change-Id: Ic31f70dc731bb54083ad38b704e684d0eb958d36
Signed-off-by: Jiacheng Zheng <jiaczhen@codeaurora.org>
2020-04-13 18:58:05 +08:00
Shay
9a9deef71b pfk: Fixed ICE slot number for bare metal
Set the number of available ICE slots to 30, as the
first two are occupied by FDE.

Change-Id: I24b0e6efa5195697d120430f709c9465e8514f19
Signed-off-by: Shay <shayn@codeaurora.org>
2020-03-11 09:39:25 +02:00
Shay
8416f71c41 pfk: Added support for virtualized ICE
Added pfk_ice_virt.c which sends hab requests to BE in host,
instead of sending scm calls directly to TZ.
Also, removed the hardcoded size of key cache table,
and made it configurable.

Change-Id: I942c3886c2fb93846bcdf15b19eabb3bc83e05ba
Signed-off-by: Shay <shayn@codeaurora.org>
2019-12-02 13:50:58 -08:00
Sahitya Tummala
ce25ea95b8 pfk: use cached mapping at all places in pfk_bio_get_inode()
The page->mapping will be set to NULL when it is truncated.
The same metadata page if it is currently under processing by
ext4/jbd2, then it is possible for pfk_bio_get_inode() to see
inconsistent page->mapping, for the requests submitted by jbd2
on this page. To avoid this inconsistency, use cached mapping at
all places in pfk_bio_get_inode(). It doesn't matter whether the
pfk driver sees the mapping or sees null mapping for metadata
requests because, pfk_allow_merge_bio() will always return true
for 2 journal metadata requests and  for one journal and one
non-journal request, it always returns false (independent of
the metadata page mapping state).

Change-Id: Ia452f972346e1ba3b25560ffa140d023dbb3409d
Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
2019-10-22 08:41:02 +05:30
Neeraj Soni
104d99ba6d security: pfe: Use non blocking scm call
Use non-retrying version of scm calls to
configure ICE keys. This ensures that control is
returned to upper layer as quickly as possible.

Change-Id: Idbecd9301d2f361c17a720c4ac0dcdc393985676
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
2018-11-14 05:07:28 -08:00
Shivaprasad Hongal
4884d5cd6c pfk: clean up code to remove keymaster calls
Remove code related to keymaster calls for setting
ICE as we now wrap/unwrap FBE keys in trustzone
kernel rather than keymaster.

Change-Id: Ib1812de84e6d1a380f87f93fd0f414b4ea24e03a
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-11-08 10:02:53 -08:00
Shivaprasad Hongal
686016dc17 pfk: add changes for clear key support
Add support for clearing FBE key and all it's
corresponding data from kernel, trustzone and ICE
when a user is locked or deleted.

Change-Id: I0c1afc1a7fcf2e76cd8e268fea31e68d2efe0130
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-10-30 11:01:12 -07:00
Neeraj Soni
c35ee75968 security: pfe: Set DUN size according to file system and storage type
EXT4 FS and F2FS has different way of setting Data Unit Number (DUN)
size value for UFS and eMMC storage devices. EXT4 FS uses sector number
while F2FS uses inode|pgidx. Check Storage and file system type
before setting the DUN value in Inline Crypto Engine (ICE).

Change-Id: I2de18ddd8908ce63b6d54b34b21d750d79f49cc2
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-10-10 11:22:03 -07:00
qctecmdr Service
942ab60077 Merge "security: pfk: use page_mapping to avoid wrong memory access" 2018-10-03 17:44:17 -07:00
Jaegeuk Kim
243b3d4fea security: pfk: use page_mapping to avoid wrong memory access
This patch fixes potentially wrong memory access when doing ICE operations.

Change-Id: I4893d106877f6313bbcd2218d7c4ad12f63a0cbe
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Signed-off-by: Neeraj Soni <neersoni@codeaurora.org>
2018-09-26 00:11:31 -07:00
Shivaprasad Hongal
97e4a55cf0 pfk_ice: Check km version before ICE calls
Check the keymaster version to decide where the wrapped
keys are unwrapped.

Change-Id: Id91bfd33d9719d99de5e5cf39938bc148de7da5c
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-09-25 08:32:50 -07:00
Jaegeuk Kim
af4ef71b89 dm-default-key, f2fs, ICE: support dm-default-key with f2fs/ICE
This patch fixes assigning bi_crypt_key for moving data which was previously
encrypted by f2fs.

Note that, dm-default-key should not assign bi_crypt_key, if bi_crypt_skip is
set.

The bug sceanrios is:

1. write data with user key by f2fs
  -  ENC(KU, IVU, DATA)
2. log out user key
3. read data #1 w/o user key from LBA #a
4. dm-default-key assigns default key
  - DEC(KD, LBA#a, ENC(KU, IVU, DATA))
5. write data #1 w/o user key into LBA #b
6. dm-default-key assigns default key
  - ENC(KD, LBA#b, DEC(KD, LBA#a, ENC(KU, IVU, DATA)))
7. Read DATA out with valid logged-in user key
  - DEC(KU, IVU, ENC(KD, LBA#b, DEC(KD, LBA#a, ENC(KU, IVU, DATA))))

So, this patch introduces bi_crypt_skip to avoid 4. ~ 6 with right flow:
1. write data with user key by f2fs
  -  ENC(KU, IVU, DATA)
2. log out user key
3. read data #1 w/o user key from LBA #a
4. dm-default-key skip to assign default key
  - ENC(KU, IVU, DATA)
5. write data #1 w/o user key into LBA #b
6. dm-default-key skips to assign default key
  - ENC(KU, IVU, DATA)
7. Try to read DATA with valid logged-in user key
  - DEC(KU, IVU, ENC(KU, IVU, DATA))

Bug: 68721442
Change-Id: Icefe85f608b7c3c84beb2bfa4267efd0f3787453
Signed-off-by: Jaegeuk Kim <jaegeuk@google.com>
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-08-24 10:36:55 -07:00
Shivaprasad Hongal
367c46b11c Enable hardware based FBE on f2fs and adapt ext4 fs
Hardware File Based Encryption (FBE) uses inline crypto
engine to encrypt the user data.
1. security/pfk: changes to support per file
   encryption for f2fs using hardware crypto engine.
2. fs/ext4: adapted crypto APIs for generic crypto layer.
3. fs/f2fs: support hardware crypto engine based per file
   encryption.
4. fs/crypto: export APIs to support hardware crypto
   engine based per file encryption.
5. security/pfe: added wrapped key support based on
   upstream changes.
Other changes made to provide support framework for per
file encryption.

Reverting commit e02a4e21f6 ("ext4: Add HW File Based
Encryption on ext4 file system") and adding changes to
have FBE in sync with upstream implementation of FBE.

Change-Id: I17f9909c43ba744eb874f6d237745fbf88a2b848
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-08-22 10:56:07 -07:00
Shivaprasad Hongal
2129ce57d7 Revert "pfk: keymaster support to set/clear ice keys"
This reverts commit cd1be5fac5.

Reverting to have FBE in sync with upstream implementation.

Change-Id: I21d84211c0469d1a4b3d8685033a64cc04854109
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-08-22 10:56:07 -07:00
Shivaprasad Hongal
cd1be5fac5 pfk: keymaster support to set/clear ice keys
With new FBE key management changes, the keys are not
available in the clear, but wrapped with an ephemeral key
from keymaster. We cannot use a direct call to the qsee
kernel to set/clear keys as they need to be unwrapped by
keymaster first, which would then call in to the qsee kernel
to set/clear the keys.

Change-Id: Ie3fba8c0613d246efb5577ef6a0254171f082bfe
Signed-off-by: Shivaprasad Hongal <shongal@codeaurora.org>
2018-08-09 13:28:50 -07:00
Dinesh K Garg
e02a4e21f6 ext4: Add HW File Based Encryption on ext4 file system
HW File Based Encryption (FBE) uses Crypto Engine to
encrypt the user data with unique key for each file.
File name and data both are encrypted with this feature.
  1. security/pfk: New module to support per file
     encryption using CE.
  2. fs/ext4: changes made to support using crypto engine
     to encyrpt the data.
Other changes made to provide support framework for per
file encryption.

Change-Id: Idea3f6f8bf954c60c3c6caa3d9b048d87fcacbe4
Signed-off-by: Dinesh K Garg <dineshg@codeaurora.org>
2018-06-11 23:09:54 -07:00