Commit graph

576507 commits

Author SHA1 Message Date
Sami Tolvanen
ade8ed0d7d ANDROID: dm verity fec: fix RS block calculation
A call to do_div was changed in Linux 4.5 to div64_u64 in
verity_fec_decode, which broke RS block calculation due to
incompatible semantics. This change fixes the computation.

Bug: 21893453
Change-Id: Idb88b901e0209c2cccc9c0796689f780592d58f9
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
(cherry picked from commit 879aac93eebcc2862d71afa9eca3a0c0f51b3b01)
Git-commit: 8f9576b381
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:49:20 -07:00
Sami Tolvanen
c1d1dd3794 ANDROID: dm verity fec: add missing release from fec_ktype
Add a release function to allow destroying the dm-verity device.

Bug: 27928374
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Change-Id: Ic0f7c17e4889c5580d70b52d9a709a37165a5747
(cherry picked from commit 0039ccf47c8f99888f7b71b2a36a68a027fbe357)
Git-commit: c4d8e3e8d2
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:49:19 -07:00
Sami Tolvanen
c57ee8ea9e ANDROID: dm verity fec: limit error correction recursion
If verity tree itself is sufficiently corrupted in addition to data
blocks, it's possible for error correction to end up in a deep recursive
error correction loop that eventually causes a kernel panic as follows:

[   14.728962] [<ffffffc0008c1a14>] verity_fec_decode+0xa8/0x138
[   14.734691] [<ffffffc0008c3ee0>] verity_verify_level+0x11c/0x180
[   14.740681] [<ffffffc0008c482c>] verity_hash_for_block+0x88/0xe0
[   14.746671] [<ffffffc0008c1508>] fec_decode_rsb+0x318/0x75c
[   14.752226] [<ffffffc0008c1a14>] verity_fec_decode+0xa8/0x138
[   14.757956] [<ffffffc0008c3ee0>] verity_verify_level+0x11c/0x180
[   14.763944] [<ffffffc0008c482c>] verity_hash_for_block+0x88/0xe0

This change limits the recursion to a reasonable level during a single
I/O operation.

Bug: 28943429
Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
Change-Id: I0a7ebff331d259c59a5e03c81918cc1613c3a766
(cherry picked from commit f4b9e40597e73942d2286a73463c55f26f61bfa7)
Git-commit: 249d2baf9b
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:49:18 -07:00
Badhri Jagan Sridharan
590c510b92 ANDROID: dm: android-verity: Remove fec_header location constraint
This CL removes the mandate of the fec_header being located right
after the ECC data.

(Cherry-picked from https://android-review.googlesource.com/#/c/280401)

Bug: 28865197
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: Ie04c8cf2dd755f54d02dbdc4e734a13d6f6507b5
Git-commit: 1daecfe215
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:49:17 -07:00
Vikram Mulukutla
79e1ba0e5c Revert "dm-verity: Add a temporary dummy opaque struct declaration"
The declaration that caused a compilation failure is not fixed.
Remove the dummy opaque struct declaration.

Change-Id: Id27cf5231aebcdd14f4fb25dd44052f829e0427e
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:48:40 -07:00
Badhri Jagan Sridharan
25540dd97d ANDROID: dm-verity: adopt changes made to dm callbacks
v4.4 introduced changes to the callbacks used for
dm-linear and dm-verity-target targets. Move to those headers
in dm-android-verity.

Verified on hikey while having
BOARD_USES_RECOVERY_AS_BOOT := true
BOARD_BUILD_SYSTEM_ROOT_IMAGE := true

BUG: 27339727
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: Ic64950c3b55f0a6eaa570bcedc2ace83bbf3005e
Git-commit: aa3cda16a5
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:47:04 -07:00
Badhri Jagan Sridharan
d152189385 ANDROID: dm: android-verity: Verify header before fetching table
Move header validation logic before reading the verity_table as
an invalid header implies the table is invalid as well.

(Cherry-picked from:
https://partner-android-review.git.corp.google.com/#/c/625203)

BUG: 29940612
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: Ib34d25c0854202f3e70df0a6d0ef1d96f0250c8e
Git-commit: ad2f6cf0be
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:47:03 -07:00
Badhri Jagan Sridharan
ec17b238f7 ANDROID: dm: allow adb disable-verity only in userdebug
adb disable-verity was allowed when the phone is in the
unlocked state. Since the driver is now aware of the build
variant, honor "adb disable-verity" only in userdebug
builds.

(Cherry-picked from
https://partner-android-review.git.corp.google.com/#/c/622117)

BUG: 29276559
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I7ce9f38d8c7a62361392c5a8ccebb288f8a3a2ea
Git-commit: f74284f6c2
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:47:03 -07:00
Badhri Jagan Sridharan
1e19beb791 ANDROID: dm: mount as linear target if eng build
eng builds dont have verity enabled i.e it does even
have verity metadata appended to the parition. Therefore
add rootdev as linear device and map the entire partition
if build variant is "eng".

(Cherry-picked based on
https://partner-android-review.git.corp.google.com/#/c/618690/)

BUG: 29276559
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I8f5c2289b842b820ca04f5773525e5449bb3f355
Git-commit: 58bae772a7
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:47:02 -07:00
Badhri Jagan Sridharan
6bcdcfa92b ANDROID: dm: use default verity public key
If the dm-android-verity target does not provide a default
key try using the default public key from the system keyring.
The defualt verity keyid is passed as a kernel command line
argument veritykeyid=.

The order of the dm-android-verity params have been reversed
to facilitate the change.

Old format example:
dm="system none ro,0 1 android-verity Android:#7e4333f9bba00adfe0ede979e28ed1920492b40f /dev/mmcblk0p43"

New formats supported:
dm="system none ro,0 1 android-verity /dev/mmcblk0p43 Android:#7e4333f9bba00adfe0ede979e28ed1920492b40f"

(or)

dm="system none ro,0 1 android-verity /dev/mmcblk0p43"
when veritykeyid= is set in the kernel command line.

BUG: 28384658
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I506c89b053d835ab579e703eef2bc1f8487250de
(cherry picked from commit c5c74d0327729f35b576564976885596c6d0e7fb)
Git-commit: 051d4706c6
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:47:01 -07:00
Badhri Jagan Sridharan
b1b24b49e2 ANDROID: dm: fix signature verification flag
The bug was that the signature verification was only
happening when verity was disabled. It should always
happen when verity is enabled.

Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: I2d9354e240d36ea06fc68c2d18d8e87b823a4c2f
(cherry picked from commit 5364b5ca0b1a12a58283b51408e43fc36d4e4fe7)
Git-commit: 9c43aca47b
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:47:01 -07:00
Jeremy Compostella
cf53c29528 ANDROID: dm: use name_to_dev_t
This patch makes android_verity_ctr() parse its block device string
parameter with name_to_dev_t().  It allows the use of less hardware
related block device reference like PARTUUID for instance.

Change-Id: Idb84453e70cc11abd5ef3a0adfbb16f8b5feaf07
Signed-off-by: Jeremy Compostella <jeremy.compostella@intel.com>
Git-commit: a517817c17
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:47:00 -07:00
Badhri Jagan Sridharan
583c9f05ff ANDROID: dm: rename dm-linear methods for dm-android-verity
This keeps linear_target as static variable and just exposes
the linear target methods for android-verity

Cherry-picked: https://android-review.googlesource.com/#/c/212858

Change-Id: I4a377e417b00afd9ecccdb3e605fea31a7df112e
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
(cherry picked from commit a6d1b091f40b25d97849487e29ec097bc5f568dd)
Git-commit: 86fd82659f
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:46:59 -07:00
Badhri Jagan Sridharan
b90e0fa9b9 ANDROID: dm: Minor cleanup
Compacts the linear device arguments removing the
unnecessary variables.

Bug: 27175947
Change-Id: I157170eebe3c0f89a68ae05870a1060f188d0da0
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Git-commit: 438e162621
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:46:58 -07:00
Badhri Jagan Sridharan
38aede51f3 ANDROID: dm: Mounting root as linear device when verity disabled
This CL makes android-verity target to be added as linear
dm device if when bootloader is unlocked and verity is disabled.

Bug: 27175947
Change-Id: Ic41ca4b8908fb2777263799cf3a3e25934d70f18
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Git-commit: 67ce481897
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:46:58 -07:00
Badhri Jagan Sridharan
03b451f737 ANDROID: dm-android-verity: Rebase on top of 4.1
Following CLs in upstream causes minor changes to dm-android-verity target.
1. keys: change asymmetric keys to use common hash definitions
2. block: Abstract out bvec iterator
Rebase dm-android-verity on top of these changes.

Bug: 27175947

Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Change-Id: Icfdc3e7b3ead5de335a059cade1aca70414db415
Git-commit: f42f971b7b
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:46:57 -07:00
Badhri Jagan Sridharan
6fad3408f5 ANDROID: dm: Add android verity target
This device-mapper target is virtually a VERITY target. This
target is setup by reading the metadata contents piggybacked
to the actual data blocks in the block device. The signature
of the metadata contents are verified against the key included
in the system keyring. Upon success, the underlying verity
target is setup.

BUG: 27175947

Change-Id: I7e99644a0960ac8279f02c0158ed20999510ea97
Signed-off-by: Badhri Jagan Sridharan <Badhri@google.com>
Git-commit: 36d01a590d
Git-repo: https://android.googlesource.com/kernel/common
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:46:56 -07:00
Vikram Mulukutla
d3dd1af9c3 dm-verity: Add a temporary dummy opaque struct declaration
Upcoming dm-verity changes include a series that introduces
an extern in dm-verity.h that is both useless (isn't defined)
and causes a warning that breaks compilation. Introduce a
dummy opaque struct to allow compilation and revert it later
when the offending declaration is fixed.

Change-Id: I82a911cf963367b1f311c5035bf894a380a76e54
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
2016-10-28 14:46:47 -07:00
Linux Build Service Account
ce610f2fc9 Merge "ASoC: msm: Add routes for all TDM modes" 2016-10-27 15:49:28 -07:00
Linux Build Service Account
a8a45f5fcb Merge "ASoC: msmcobalt: Add support for all TDM modes" 2016-10-27 15:49:26 -07:00
Linux Build Service Account
4578a0a555 Merge "ARM: dts: msm: fix sd card detection for msmcobalt QRD SKUK board" 2016-10-27 15:49:25 -07:00
Linux Build Service Account
dbcf7687b3 Merge "ASoC: msm: Enable Media Format converter for all resampling usecases" 2016-10-27 15:49:24 -07:00
Linux Build Service Account
dceddf2339 Merge "msm: mdss: Fix memleak in framebuffer register and remove" 2016-10-27 15:49:22 -07:00
Linux Build Service Account
d4d8e11cce Merge "msm: mdss: Correct settings when on/off happens in dest-scaler" 2016-10-27 15:49:21 -07:00
Linux Build Service Account
57054d8cd6 Merge "msm: mdss: Avoid adaptive variable refresh during dynaminc FPS" 2016-10-27 15:49:20 -07:00
Linux Build Service Account
8493ec68b0 Merge "msm: mdss: dp: remove programming of maud/naud for audio" 2016-10-27 15:49:19 -07:00
Linux Build Service Account
c2e7ee2c2a Merge "ARM: dts: msm: enable esd for jdi qhd cmd mode panel in msmcobalt" 2016-10-27 15:49:18 -07:00
Linux Build Service Account
a04b622efd Merge "qcom-charger: set optimal buck switching frequency" 2016-10-27 15:49:17 -07:00
Linux Build Service Account
66f8ffa044 Merge "ARM: dts: msm: add SLPI fw name property for msmcobalt" 2016-10-27 15:49:16 -07:00
Linux Build Service Account
8779c92e1a Merge "sensors: ssc: add support to read SLPI fw name" 2016-10-27 15:49:15 -07:00
Linux Build Service Account
e155d614ea Merge "msm: ipa: Fix the memory leak in error cases" 2016-10-27 15:49:14 -07:00
Linux Build Service Account
42d02f4156 Merge "qseecom: check buffer size when loading firmware images" 2016-10-27 15:49:13 -07:00
Linux Build Service Account
e223d02cbb Merge "leds: qpnp-flash-v2: fix safety timer configuration" 2016-10-27 15:49:12 -07:00
Linux Build Service Account
a7981f61bc Merge "msm: ipa: fix ioctl input param validation" 2016-10-27 15:49:11 -07:00
Linux Build Service Account
6600841f13 Merge "defconfig: Enable CONFIG_ICNSS_DEBUG for 32-bit msmfalcon" 2016-10-27 15:49:10 -07:00
Linux Build Service Account
7f8343eaa4 Merge "defconfig: Enable CONFIG_ICNSS_DEBUG for 32-bit msmcortex" 2016-10-27 15:49:09 -07:00
Linux Build Service Account
97d4de6ccb Merge "ASoC: msmcobalt: Fix MCLK routing on msmcobalt for WCD9340" 2016-10-27 15:49:08 -07:00
Linux Build Service Account
201f4347e2 Merge "ARM: dts: msm: Add dmic clock rate on ECPP path for msmcobalt" 2016-10-27 15:49:07 -07:00
Linux Build Service Account
10fb467dd6 Merge "soc: qcom: add support for fingerprint sensor driver" 2016-10-27 15:49:06 -07:00
Linux Build Service Account
c60241fc75 Merge "ASoC: wcd-dsp-mgr: fix restart logic when codec comes back online" 2016-10-27 15:49:05 -07:00
Linux Build Service Account
59ba1d179c Merge "ASoC: wcd934x-dsp-cntl: fix memory enable/disable sequence" 2016-10-27 15:49:04 -07:00
Linux Build Service Account
5df4ae6428 Merge "USB: dwc3-msm: Disable pipe clock requirement for HS/FS only mode" 2016-10-27 15:49:04 -07:00
Linux Build Service Account
094d9bc859 Merge "clk: qcom: Change clock index for mmssnoc_axi clock for MSMfalcon" 2016-10-27 15:49:03 -07:00
Linux Build Service Account
df255661d4 Merge "msm: sde: Fix SDE rotator clock disable sequence" 2016-10-27 15:49:02 -07:00
Linux Build Service Account
a893d7854b Merge "input: misc: hbtp_input: Add support for multiple AFE" 2016-10-27 15:49:01 -07:00
Linux Build Service Account
206ef38970 Merge "msm: mdss: edid: fix dtd parsing" 2016-10-27 15:49:00 -07:00
Linux Build Service Account
35021f91c8 Merge "clk: msm: clock: Remove controlling some graphics clocks in Linux" 2016-10-27 15:49:00 -07:00
Linux Build Service Account
2a676929f1 Merge "sched: Fix compilation issue with reset_hmp_stats" 2016-10-27 15:48:59 -07:00
Linux Build Service Account
77a8b4c9a8 Merge "ASoC: wcd934x: Trigger codec DSP subsystem restart" 2016-10-27 15:48:57 -07:00
Linux Build Service Account
3ff6b4cb95 Merge "usb: dwc3: gadget: Remove dev_WARN_ONCE in dwc3_gadget_ep_disable" 2016-10-27 15:48:56 -07:00