Inline...[DZ]
-----Original Message----- From: Dan Carpenter [mailto:dan.carpenter@oracle.com] Sent: Tuesday, August 25, 2015 3:51 AM To: Zhou, David(ChunMing) Cc: dri-devel@lists.freedesktop.org Subject: Re: drm/amdgpu: implement cgs gpu memory callbacks
On Mon, Aug 24, 2015 at 07:09:15AM +0000, Zhou, David(ChunMing) wrote:
Hi Dan, Thanks for figuring out that.
274 min_offset = obj->placements[0].fpfn << PAGE_SHIFT; 275 max_offset = obj->placements[0].lpfn << PAGE_SHIFT;
Maybe should be: min_offset = obj->placements[0].fpfn; min_offset <<= PAGE_SHIFT; max_offset = obj->placements[0].lpfn; max_offset <<= PAGE_SHIFT;
It's probably just simpler to be:
min_offset = (u64)obj->placements[0].fpfn << PAGE_SHIFT; max_offset = (u64)obj->placements[0].lpfn << PAGE_SHIFT;
But the larger questions aer why is min_offset a u64,
[DZ] max/min_offset is memory size.
and can the shift actually wrap?
[DZ] of course, adding shift wrap is better. fpfn/lpfn is page number, so <<PAGE_SHIFT is to convert to memory size.
Regards, David Zhou
I'm just looking at static checker warnings, and I'm not very familiar with this code so I don't know the answers.
regards, dan carpenter