Commit fa98447f authored by Andy Walls's avatar Andy Walls Committed by Mauro Carvalho Chehab

[media] ivtv, cx18: Make ioremap failure messages more useful for users

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: default avatarAndy Walls <awalls@md.metrocast.net>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 0a58d713
...@@ -925,8 +925,13 @@ static int __devinit cx18_probe(struct pci_dev *pci_dev, ...@@ -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, cx->enc_mem = ioremap_nocache(cx->base_addr + CX18_MEM_OFFSET,
CX18_MEM_SIZE); CX18_MEM_SIZE);
if (!cx->enc_mem) { if (!cx->enc_mem) {
CX18_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n"); CX18_ERR("ioremap failed. Can't get a window into CX23418 "
CX18_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n"); "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; retval = -ENOMEM;
goto free_mem; goto free_mem;
} }
......
...@@ -1029,8 +1029,13 @@ static int __devinit ivtv_probe(struct pci_dev *pdev, ...@@ -1029,8 +1029,13 @@ static int __devinit ivtv_probe(struct pci_dev *pdev,
itv->enc_mem = ioremap_nocache(itv->base_addr + IVTV_ENCODER_OFFSET, itv->enc_mem = ioremap_nocache(itv->base_addr + IVTV_ENCODER_OFFSET,
IVTV_ENCODER_SIZE); IVTV_ENCODER_SIZE);
if (!itv->enc_mem) { if (!itv->enc_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n"); IVTV_ERR("ioremap failed. Can't get a window into CX23415/6 "
IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n"); "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; retval = -ENOMEM;
goto free_mem; goto free_mem;
} }
...@@ -1041,8 +1046,14 @@ static int __devinit ivtv_probe(struct pci_dev *pdev, ...@@ -1041,8 +1046,14 @@ static int __devinit ivtv_probe(struct pci_dev *pdev,
itv->dec_mem = ioremap_nocache(itv->base_addr + IVTV_DECODER_OFFSET, itv->dec_mem = ioremap_nocache(itv->base_addr + IVTV_DECODER_OFFSET,
IVTV_DECODER_SIZE); IVTV_DECODER_SIZE);
if (!itv->dec_mem) { if (!itv->dec_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n"); IVTV_ERR("ioremap failed. Can't get a window into "
IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n"); "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; retval = -ENOMEM;
goto free_mem; goto free_mem;
} }
...@@ -1057,8 +1068,13 @@ static int __devinit ivtv_probe(struct pci_dev *pdev, ...@@ -1057,8 +1068,13 @@ static int __devinit ivtv_probe(struct pci_dev *pdev,
itv->reg_mem = itv->reg_mem =
ioremap_nocache(itv->base_addr + IVTV_REG_OFFSET, IVTV_REG_SIZE); ioremap_nocache(itv->base_addr + IVTV_REG_OFFSET, IVTV_REG_SIZE);
if (!itv->reg_mem) { if (!itv->reg_mem) {
IVTV_ERR("ioremap failed, perhaps increasing __VMALLOC_RESERVE in page.h\n"); IVTV_ERR("ioremap failed. Can't get a window into CX23415/6 "
IVTV_ERR("or disabling CONFIG_HIGHMEM4G into the kernel would help\n"); "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; retval = -ENOMEM;
goto free_io; goto free_io;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment