Skip to contentSkip to conversation

Oops when modprobing cx8800

DISCUSSION Gerd Knorr 1 participant 1 message Jul 27, 2004 1 message not in the archive

lore
Share & tools
lore

A message that is not in the archive (sent off-list or not yet received): [email protected]

Gerd Knorr

author
#1 lore raw
Quoted 6 lines · Andrew Morton

hm, odd.

Jul 21 15:30:21 athene kernel:  [<c020a377>] vsprintf+0x27/0x30
Jul 21 15:30:21 athene kernel:  [<c020a39f>] sprintf+0x1f/0x30
Jul 21 15:30:21 athene kernel:  [<d0cc1078>] cx8800_initdev+0x78/0x7a0 

The only bug I'm aware of which is still in 2.6.8-rc1+ and might be this is that the card= insmod option lacks a range check (patch below), so passing some insane high value might kill the driver. It shouldn't happen with a simple "insmod cx88" + card autodetect through.

If it is something else -- no idea.

Quoted 1 line

(This driver should be using kthread for the kernel thread management btw)

Yup, and some other v4l drivers as well ...
Just didn't know kthread exists before OLS ;)

Gerd

cx88-video.c +3 -1
diff -u -p -r1.27 -r1.28
@@ -2382,7 +2382,9 @@ static int __devinit cx8800_initdev(stru
 	}
 
 	/* board config */
-	dev->board = card[cx8800_devcount];
+	dev->board = UNSET;
+	if (card[cx8800_devcount] < cx88_bcount)
+		dev->board = card[cx8800_devcount];
 	for (i = 0; UNSET == dev->board  &&  i < cx88_idcount; i++) 
 		if (pci_dev->subsystem_vendor == cx88_subids[i].subvendor &&
 		    pci_dev->subsystem_device == cx88_subids[i].subdevice)