Files
linux-nvgpu/drivers/gpu/nvgpu/gk20a/gr_gk20a.c
Deepak Nibade 162c04ddce gpu: nvgpu: fix out-of-bound access on gr->gpc_tpc_count
Fix slab-out-of-bounds issue reported by KASAN

[   29.922710] BUG: KASAN: slab-out-of-bounds in
gr_gk20a_init_fs_state+0x1bc/0x898 at addr ffffffc1a0988c04
...
[   29.961820] INFO: Allocated in gr_gk20a_init_gr_config+0x380/0x1b20
age=374 cpu=5 pid=1
...
Out-of-bound access from
[   30.241943] [<ffffffc0007d2674>] gr_gk20a_init_fs_state+0x1bc/0x898
[   30.248205] [<ffffffc000839a2c>] gr_gm20b_init_fs_state+0x4c/0x5c8
[   30.254381] [<ffffffc000871670>] gr_gp10b_init_fs_state+0x160/0x3a8
[   30.260643] [<ffffffc0007d70ec>] gk20a_init_gr_setup_hw+0x974/0x1530
[   30.266991] [<ffffffc0007eac6c>] gk20a_init_gr_support+0x14c/0xeb0
[   30.273164] [<ffffffc00079d9c8>]
gk20a_pm_finalize_poweron+0x738/0xd10
[   30.279684] [<ffffffc00079dfd0>] gk20a_pm_runtime_resume+0x30/0x58

Fix this by using a separate API gr_gk20a_get_tpc_count()
which returns tpc count for a gpc and returns 0
if gpc index is greater than available gpcs

Bug 200257557

Change-Id: I78856ca93c0381cb4bcef7a56a5210fa269cf3ac
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/1277692
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sami Kiminki <skiminki@nvidia.com>
Reviewed-by: Konsta Holtta <kholtta@nvidia.com>
Reviewed-by: Bharat Nihalani <bnihalani@nvidia.com>
2017-01-02 01:48:04 -08:00

269 KiB