HID: Drop NULL test on list_entry result
authorJulia Lawall <julia@diku.dk>
Sun, 12 Jul 2009 07:42:47 +0000 (09:42 +0200)
committerJiri Kosina <jkosina@suse.cz>
Wed, 22 Jul 2009 23:28:02 +0000 (01:28 +0200)
list_entry, which is an alias for container_of, cannot return NULL, as
there is no way to add a NULL value to a doubly linked list.

A simplified version of the semantic match that findds this problem is as
follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r@
expression x,E;
statement S1,S2;
position p,p1;
@@

*x = list_entry@p(...)
... when != x = E
*if@p1 (x == NULL) S1 else S2
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
drivers/hid/hid-lgff.c

index 95835ea..987abeb 100644 (file)
@@ -151,11 +151,6 @@ int lgff_init(struct hid_device* hid)
 
        /* Check that the report looks ok */
        report = list_entry(report_list->next, struct hid_report, list);
-       if (!report) {
-               err_hid("NULL output report");
-               return -1;
-       }
-
        field = report->field[0];
        if (!field) {
                err_hid("NULL field");