diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/gsp_sema_service.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/gsp_sema_service.c b/kernel/gsp_sema_service.c index 910e7ef..4b315f6 100644 --- a/kernel/gsp_sema_service.c +++ b/kernel/gsp_sema_service.c @@ -14775,12 +14775,15 @@ static void svc_ce_firstsub_capture(struct nv_vgpu_device *vgpu, for (off = 0; off + 0x90 <= lim; off += 0x100) { static const u64 udeltas[] = { 0x10000, 0x2000, 0x1000, 0x0 }; - u32 h0, h1, hva, hlen; + u32 h0, h1; + u64 hva; + u32 hlen; unsigned int ui; memcpy(&h0, sbase + off, 4); memcpy(&h1, sbase + off + 4, 4); - hva = ((h1 & 0xff) << 32) | (h0 & 0xfffffffc); + hva = ((u64)(h1 & 0xff) << 32) | + (u64)(h0 & 0xfffffffc); hlen = ((h1 >> 10) & 0x1fffff) << 2; if ((hva & 0xfffff) || hva < 0x120000000ULL || hva >= 0x121000000ULL || hlen < 4 || |
