diff options
author | Hans Verkuil <hverkuil@xs4all.nl> | 2007-03-10 18:50:51 -0500 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-04-27 14:44:33 -0400 |
commit | f40a29168475d64d854ef16a9263b24b0b2a9c6e (patch) | |
tree | ea9650b3d13c54a37fd0c8460858da6b35fb5c37 | |
parent | 6773c1c24d48f0aa667ba2aff573904a77050f09 (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.c | 3 |
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 |