net/wireless/nl80211.c: Avoid call to genlmsg_cancel
authorJulia Lawall <julia@diku.dk>
Fri, 28 Jan 2011 14:17:11 +0000 (15:17 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 28 Jan 2011 20:46:23 +0000 (15:46 -0500)
commitefe1cf0c5743caf4daccb57b399ef63edad41c9d
treed482979aa5a16a49d8095dcf00b6023c9051b86f
parent76a9f6fd9adc5ce62b4ea36a099bb1458d4cb7a6
net/wireless/nl80211.c: Avoid call to genlmsg_cancel

genlmsg_cancel subtracts some constants from its second argument before
calling nlmsg_cancel.  nlmsg_cancel then calls nlmsg_trim on the same
arguments.  nlmsg_trim tests for NULL before doing any computation, but a
NULL second argument to genlmsg_cancel is no longer NULL due to the initial
subtraction.  Nothing else happens in this execution, so the call to
genlmsg_cancel is simply unnecessary in this case.

The semantic match that finds this problem is as follows:
(http://coccinelle.lip6.fr/)

// <smpl>
@@
expression data;
@@

if (data == NULL) { ...
* genlmsg_cancel(..., data);
  ...
  return ...;
}
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/nl80211.c