aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans Verkuil <hverkuil@xs4all.nl>2007-03-10 18:50:51 -0500
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-04-27 14:44:33 -0400
commitf40a29168475d64d854ef16a9263b24b0b2a9c6e (patch)
treeea9650b3d13c54a37fd0c8460858da6b35fb5c37
parent6773c1c24d48f0aa667ba2aff573904a77050f09 (diff)
V4L/DVB (5417): First unregister the driver, and then free the memory.
ivtv_remove which is called by pci_unregister_driver was still using memory that was already freed. Ouch. Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl> Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
-rw-r--r--drivers/media/video/ivtv/ivtv-driver.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/media/video/ivtv/ivtv-driver.c b/drivers/media/video/ivtv/ivtv-driver.c
index 7058aa25ac9c..d00811a820f7 100644
--- a/drivers/media/video/ivtv/ivtv-driver.c
+++ b/drivers/media/video/ivtv/ivtv-driver.c
@@ -1345,6 +1345,8 @@ static void module_cleanup(void)
1345{ 1345{
1346 int i, j; 1346 int i, j;
1347 1347
1348 pci_unregister_driver(&ivtv_pci_driver);
1349
1348 for (i = 0; i < ivtv_cards_active; i++) { 1350 for (i = 0; i < ivtv_cards_active; i++) {
1349 if (ivtv_cards[i] == NULL) 1351 if (ivtv_cards[i] == NULL)
1350 continue; 1352 continue;
@@ -1353,7 +1355,6 @@ static void module_cleanup(void)
1353 } 1355 }
1354 kfree(ivtv_cards[i]); 1356 kfree(ivtv_cards[i]);
1355 } 1357 }
1356 pci_unregister_driver(&ivtv_pci_driver);
1357} 1358}
1358 1359
1359/* Note: These symbols are exported because they are used by the ivtv-fb 1360/* Note: These symbols are exported because they are used by the ivtv-fb