Re: [PATCH 3/3] hid: return -ENOMEM when memory allocation fails
flat view
From: Jiri Kosina <hidden>
Date: 2011-01-21 09:52:17
Also in:
lkml
On Thu, 20 Jan 2011, Davidlohr Bueso wrote:
quoted hunk ↗ jump to hunk
From: Davidlohr Bueso <redacted> Signed-off-by: Davidlohr Bueso <redacted> --- drivers/hid/hid-core.c | 2 +- drivers/hid/usbhid/hiddev.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c index d678cf3..eb2251c 100644 --- a/drivers/hid/hid-core.c +++ b/drivers/hid/hid-core.c@@ -129,7 +129,7 @@ static int open_collection(struct hid_parser *parser, unsigned type) parser->device->collection_size * 2, GFP_KERNEL); if (collection == NULL) { dbg_hid("failed to reallocate collection array\n"); - return -1; + return -ENOMEM; }
That's not really complete, as the return value will be lost at caller
anyway, see hid_parse_report():
if (dispatch_type[item.type](parser, &item)) {
dbg_hid("item %u %u %u %u parsing failed\n",
item.format, (unsigned)item.size,
(unsigned)item.type, (unsigned)item.tag);
goto err;
}
Could you please re-spin the patch and add also the return value
propagation here as well?
quoted hunk ↗ jump to hunk
diff --git a/drivers/hid/usbhid/hiddev.c b/drivers/hid/usbhid/hiddev.c index af0a7c1..38513cc 100644 --- a/drivers/hid/usbhid/hiddev.c +++ b/drivers/hid/usbhid/hiddev.c@@ -894,7 +894,7 @@ int hiddev_connect(struct hid_device *hid, unsigned int force) } if (!(hiddev = kzalloc(sizeof(struct hiddev), GFP_KERNEL))) - return -1; + return -ENOMEM;
The same here. The actual return value from hiddev_connect() is being
checked by the caller only whether it's 0 (success) or not. See
hid_connect():
if ((connect_mask & HID_CONNECT_HIDDEV) && hdev->hiddev_connect &&
!hdev->hiddev_connect(hdev,
connect_mask & HID_CONNECT_HIDDEV_FORCE))
hdev->claimed |= HID_CLAIMED_HIDDEV;
--
Jiri Kosina
SUSE Labs, Novell Inc.