Search Linux Wireless

re: brcmsmac: use container_of instead of cast

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch ed1dd81464f5: "brcmsmac: use container_of instead of cast" 
from Jun 30, 2012, leads to the following Smatch warning:
drivers/net/wireless/brcm80211/brcmsmac/aiutils.c:543 ai_detach()
	 warn: can 'sii' even be NULL?

   533  /* may be called with core in reset */
   534  void ai_detach(struct si_pub *sih)
   535  {
   536          struct si_info *sii;
   537  
   538          struct si_pub *si_local = NULL;
   539          memcpy(&si_local, &sih, sizeof(struct si_pub **));
   540  
   541          sii = container_of(sih, struct si_info, pub);
   542  
   543          if (sii == NULL)
   544                  return;
   545  
   546          kfree(sii);
   547  }


Smatch complains because container_of() of does pointer math and the
check for NULL only works when ->pub is first member of the si_info
struct.

Are you sure you want to free sii and not sih?

Also kfree() checks for NULL.

The memcpy() is pointless.

The white space is not right.  There should be a blank line after the
variable declarations.

regards,
dan carpenter
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux