[FOSS_TLK]tlk: task: fix task map ID handling
authorChris Johnson <cwj@nvidia.com>
Tue, 30 Dec 2014 20:19:15 +0000 (12:19 -0800)
committerDennis Huang <denhuang@nvidia.com>
Tue, 16 Jun 2015 20:54:33 +0000 (13:54 -0700)
commit535daa6ee53e30ec05d4e1bf20d0df3ede4a42d9
tree3c5317bb3a4a490e0ca4bfda84b686139b25a7ae
parent94aad85fceefa6f69806df8be5581389d9355695
[FOSS_TLK]tlk: task: fix task map ID handling

The task bootloader during init builds task_map_t structs
for the various sections of the TA binary and also based
on the manifest adds MMIO mappings.

These MMIO mappings specify an ID, which is later used by
the TA to retrieve the virtual address for this mapping.
To work properly these IDs need to be unique.

Previously, callers of task_add_mapping didn't init all
the fields of the malloc-ed task_map_t. This meant a later
request by ID for the virtual addr could match the wrong
mapping leading to data aborts (e.g. protection fault).

This change now callocs the task_map_t, so the ID of the
mapping is initialized and adds asserts/checks on the ID
coming from the manifest and during the IOCTL to retrieve
the mapping.

Change-Id: Ic68307fd9ca933437d23f77e6ffaba203394dd8b
Signed-off-by: Chris Johnson <cwj@nvidia.com>
Reviewed-on: http://git-master/r/715769
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: Varun Wadekar <vwadekar@nvidia.com>
Tested-by: Varun Wadekar <vwadekar@nvidia.com>
arch/arm/arm/task.c
kernel/syscall.c
kernel/task.c