summaryrefslogtreecommitdiff
path: root/drivers/ide/ide-io.c
diff options
context:
space:
mode:
authorElias Oltmanns <eo@nebensachen.de>2008-10-13 23:39:45 +0400
committerBartlomiej Zolnierkiewicz <bzolnier@gmail.com>2008-10-13 23:39:45 +0400
commite415e495f8294e536e09e6a15fba897cce4c0748 (patch)
tree7a1a9c82d1b0faedf2454a76027df6e1fff4a8fb /drivers/ide/ide-io.c
parent06b89518fa69fb7243dc98c31f9a9cfa61bfe788 (diff)
downloadlinux-e415e495f8294e536e09e6a15fba897cce4c0748.tar.xz
ide: Two fixes regarding memory allocation
In function ide_devset_execute() we should use __GFP_WAIT rather than GFP_KERNEL. Also, the allocation cannot possibly fail at that point. More importantly, there is a potential memory leak in the device probing code. The infrastructure seems rather complex and I hope I haven't messed anything up by trying to fix this. Signed-off-by: Elias Oltmanns <eo@nebensachen.de> [bart: remove superfluous ide_lock taking] Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'drivers/ide/ide-io.c')
-rw-r--r--drivers/ide/ide-io.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
index d0579f1abddd..e205f46c3c7a 100644
--- a/drivers/ide/ide-io.c
+++ b/drivers/ide/ide-io.c
@@ -655,10 +655,7 @@ int ide_devset_execute(ide_drive_t *drive, const struct ide_devset *setting,
if (!(setting->flags & DS_SYNC))
return setting->set(drive, arg);
- rq = blk_get_request(q, READ, GFP_KERNEL);
- if (!rq)
- return -ENOMEM;
-
+ rq = blk_get_request(q, READ, __GFP_WAIT);
rq->cmd_type = REQ_TYPE_SPECIAL;
rq->cmd_len = 5;
rq->cmd[0] = REQ_DEVSET_EXEC;