The memory allocations in au0828_init_isoc() happen all in task context
with GFP_KERNEL. Therefore a printk() trying to deduce whether this is
called from task or interrupt context is pretty useless.

Convert it to au0828_isocdbg() as the other one in that function and for
completeness sake add one for the URB allocation as well.

Signed-off-by: Thomas Gleixner <t...@linutronix.de>
Cc: Hans Verkuil <hverkuil-ci...@xs4all.nl>
Cc: Mauro Carvalho Chehab <mche...@kernel.org>
Cc: linux-me...@vger.kernel.org

---
 drivers/media/usb/au0828/au0828-video.c |    5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

--- a/drivers/media/usb/au0828/au0828-video.c
+++ b/drivers/media/usb/au0828/au0828-video.c
@@ -231,6 +231,7 @@ static int au0828_init_isoc(struct au082
        for (i = 0; i < dev->isoc_ctl.num_bufs; i++) {
                urb = usb_alloc_urb(max_packets, GFP_KERNEL);
                if (!urb) {
+                       au0828_isocdbg("cannot allocate URB\n");
                        au0828_uninit_isoc(dev);
                        return -ENOMEM;
                }
@@ -239,9 +240,7 @@ static int au0828_init_isoc(struct au082
                dev->isoc_ctl.transfer_buffer[i] = 
usb_alloc_coherent(dev->usbdev,
                        sb_size, GFP_KERNEL, &urb->transfer_dma);
                if (!dev->isoc_ctl.transfer_buffer[i]) {
-                       printk("unable to allocate %i bytes for transfer buffer 
%i%s\n",
-                                       sb_size, i,
-                                       in_interrupt() ? " while in int" : "");
+                       au0828_isocdbg("cannot allocate transfer buffer\n");
                        au0828_uninit_isoc(dev);
                        return -ENOMEM;
                }

Reply via email to