mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
msm: kgsl: Don't print pagefault debugging in global space
Don't print pagefault debugging in global space to avoid giving away buffer addresses. Change-Id: Ic0dedbad7a66aca1bd5b678aac0ddae6a8612f1c Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
This commit is contained in:
parent
2460bec971
commit
9222a3588a
1 changed files with 22 additions and 59 deletions
|
|
@ -438,50 +438,6 @@ struct _mem_entry {
|
|||
char name[32];
|
||||
};
|
||||
|
||||
static void _get_global_entries(struct kgsl_mmu *mmu, uint64_t faultaddr,
|
||||
struct _mem_entry *prev,
|
||||
struct _mem_entry *next)
|
||||
{
|
||||
struct kgsl_device *device = KGSL_MMU_DEVICE(mmu);
|
||||
struct kgsl_global_memdesc *p = NULL, *n = NULL, *md;
|
||||
uint64_t prevaddr = 0;
|
||||
uint64_t nextaddr = (uint64_t) -1;
|
||||
|
||||
list_for_each_entry(md, &device->globals, node) {
|
||||
struct kgsl_memdesc *memdesc = &md->memdesc;
|
||||
u64 addr;
|
||||
|
||||
addr = memdesc->gpuaddr;
|
||||
if ((addr < faultaddr) && (addr > prevaddr)) {
|
||||
prevaddr = addr;
|
||||
p = md;
|
||||
}
|
||||
|
||||
if ((addr > faultaddr) && (addr < nextaddr)) {
|
||||
nextaddr = addr;
|
||||
n = md;
|
||||
}
|
||||
}
|
||||
|
||||
if (p != NULL) {
|
||||
prev->gpuaddr = p->memdesc.gpuaddr;
|
||||
prev->size = p->memdesc.size;
|
||||
prev->flags = p->memdesc.flags;
|
||||
prev->priv = p->memdesc.priv;
|
||||
prev->pid = 0;
|
||||
strlcpy(prev->name, p->name, sizeof(prev->name));
|
||||
}
|
||||
|
||||
if (n != NULL) {
|
||||
next->gpuaddr = n->memdesc.gpuaddr;
|
||||
next->size = n->memdesc.size;
|
||||
next->flags = n->memdesc.flags;
|
||||
next->priv = n->memdesc.priv;
|
||||
next->pid = 0;
|
||||
strlcpy(next->name, n->name, sizeof(next->name));
|
||||
}
|
||||
}
|
||||
|
||||
static void _get_entries(struct kgsl_process_private *private,
|
||||
uint64_t faultaddr, struct _mem_entry *prev,
|
||||
struct _mem_entry *next)
|
||||
|
|
@ -542,9 +498,7 @@ static void _find_mem_entries(struct kgsl_mmu *mmu, uint64_t faultaddr,
|
|||
/* Set the maximum possible size as an initial value */
|
||||
nextentry->gpuaddr = (uint64_t) -1;
|
||||
|
||||
if (ADDR_IN_GLOBAL(mmu, faultaddr)) {
|
||||
_get_global_entries(mmu, faultaddr, preventry, nextentry);
|
||||
} else if (private) {
|
||||
if (private) {
|
||||
spin_lock(&private->mem_lock);
|
||||
_get_entries(private, faultaddr, preventry, nextentry);
|
||||
spin_unlock(&private->mem_lock);
|
||||
|
|
@ -737,27 +691,36 @@ static int kgsl_iommu_fault_handler(struct iommu_domain *domain,
|
|||
if (!(flags & IOMMU_FAULT_PERMISSION)) {
|
||||
_check_if_freed(ctx, addr, ptname);
|
||||
|
||||
dev_err(ctx->kgsldev->dev,
|
||||
/*
|
||||
* Don't print any debug information if the address is
|
||||
* in the global region. These are rare and nobody needs
|
||||
* to know the addresses that are in here
|
||||
*/
|
||||
if (ADDR_IN_GLOBAL(mmu, addr)) {
|
||||
dev_err(ctx->kgsldev->dev, "Fault in global memory\n");
|
||||
} else {
|
||||
dev_err(ctx->kgsldev->dev,
|
||||
"---- nearby memory ----\n");
|
||||
|
||||
_find_mem_entries(mmu, addr, &prev, &next, private);
|
||||
if (prev.gpuaddr)
|
||||
_print_entry(ctx->kgsldev, &prev);
|
||||
else
|
||||
dev_err(ctx->kgsldev->dev, "*EMPTY*\n");
|
||||
_find_mem_entries(mmu, addr, &prev, &next,
|
||||
private);
|
||||
if (prev.gpuaddr)
|
||||
_print_entry(ctx->kgsldev, &prev);
|
||||
else
|
||||
dev_err(ctx->kgsldev->dev, "*EMPTY*\n");
|
||||
|
||||
dev_err(ctx->kgsldev->dev,
|
||||
dev_err(ctx->kgsldev->dev,
|
||||
" <- fault @ %8.8lX\n",
|
||||
addr);
|
||||
|
||||
if (next.gpuaddr != (uint64_t) -1)
|
||||
_print_entry(ctx->kgsldev, &next);
|
||||
else
|
||||
dev_err(ctx->kgsldev->dev, "*EMPTY*\n");
|
||||
if (next.gpuaddr != (uint64_t) -1)
|
||||
_print_entry(ctx->kgsldev, &next);
|
||||
else
|
||||
dev_err(ctx->kgsldev->dev, "*EMPTY*\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* We do not want the h/w to resume fetching data from an iommu
|
||||
* that has faulted, this is better for debugging as it will stall
|
||||
|
|
|
|||
Loading…
Reference in a new issue