Skip to content

Commit

Permalink
[media] ivtv, cx18: Make ioremap failure messages more useful for users
Browse files Browse the repository at this point in the history
The error messages these drivers emitted for ioremap() failures
were misleading and not helpful for users.  Reworded those messages
to help the user take action to resolve vmalloc address space
exhaustion.

Signed-off-by: Andy Walls <awalls@md.metrocast.net>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
  • Loading branch information
Andy Walls authored and Mauro Carvalho Chehab committed Dec 29, 2010
1 parent 0a58d71 commit fa98447
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 8 deletions.
9 changes: 7 additions & 2 deletions drivers/media/video/cx18/cx18-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -925,8 +925,13 @@ static int __devinit cx18_probe(struct pci_dev *pci_dev,
cx->enc_mem = ioremap_nocache(cx->base_addr + CX18_MEM_OFFSET,
CX18_MEM_SIZE);
if (!cx->enc_mem) {
CX18_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n");
CX18_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n");
CX18_ERR("ioremap failed. Can't get a window into CX23418 "
"memory and register space\n");
CX18_ERR("Each capture card with a CX23418 needs 64 MB of "
"vmalloc address space for the window\n");
CX18_ERR("Check the output of 'grep Vmalloc /proc/meminfo'\n");
CX18_ERR("Use the vmalloc= kernel command line option to set "
"VmallocTotal to a larger value\n");
retval = -ENOMEM;
goto free_mem;
}
Expand Down
28 changes: 22 additions & 6 deletions drivers/media/video/ivtv/ivtv-driver.c
Original file line number Diff line number Diff line change
Expand Up @@ -1029,8 +1029,13 @@ static int __devinit ivtv_probe(struct pci_dev *pdev,
itv->enc_mem = ioremap_nocache(itv->base_addr + IVTV_ENCODER_OFFSET,
IVTV_ENCODER_SIZE);
if (!itv->enc_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n");
IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n");
IVTV_ERR("ioremap failed. Can't get a window into CX23415/6 "
"encoder memory\n");
IVTV_ERR("Each capture card with a CX23415/6 needs 8 MB of "
"vmalloc address space for this window\n");
IVTV_ERR("Check the output of 'grep Vmalloc /proc/meminfo'\n");
IVTV_ERR("Use the vmalloc= kernel command line option to set "
"VmallocTotal to a larger value\n");
retval = -ENOMEM;
goto free_mem;
}
Expand All @@ -1041,8 +1046,14 @@ static int __devinit ivtv_probe(struct pci_dev *pdev,
itv->dec_mem = ioremap_nocache(itv->base_addr + IVTV_DECODER_OFFSET,
IVTV_DECODER_SIZE);
if (!itv->dec_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n");
IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n");
IVTV_ERR("ioremap failed. Can't get a window into "
"CX23415 decoder memory\n");
IVTV_ERR("Each capture card with a CX23415 needs 8 MB "
"of vmalloc address space for this window\n");
IVTV_ERR("Check the output of 'grep Vmalloc "
"/proc/meminfo'\n");
IVTV_ERR("Use the vmalloc= kernel command line option "
"to set VmallocTotal to a larger value\n");
retval = -ENOMEM;
goto free_mem;
}
Expand All @@ -1057,8 +1068,13 @@ static int __devinit ivtv_probe(struct pci_dev *pdev,
itv->reg_mem =
ioremap_nocache(itv->base_addr + IVTV_REG_OFFSET, IVTV_REG_SIZE);
if (!itv->reg_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n");
IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n");
IVTV_ERR("ioremap failed. Can't get a window into CX23415/6 "
"register space\n");
IVTV_ERR("Each capture card with a CX23415/6 needs 64 kB of "
"vmalloc address space for this window\n");
IVTV_ERR("Check the output of 'grep Vmalloc /proc/meminfo'\n");
IVTV_ERR("Use the vmalloc= kernel command line option to set "
"VmallocTotal to a larger value\n");
retval = -ENOMEM;
goto free_io;
}
Expand Down

0 comments on commit fa98447

Please sign in to comment.