On 06/17/2011 05:01 PM, Henry Ptasinski wrote:
On Thu, Jun 16, 2011 at 04:45:21PM -0700, Julian Calaby wrote:
Henry,
On Fri, Jun 17, 2011 at 09:37, Henry Ptasinski<henryp@xxxxxxxxxxxx> wrote:
How's this for a somewhat clearer implementation:
static bool brcms_c_validboardtype(struct brcms_c_hw_info *wlc_hw)
{
bool goodboard = true;
uint boardrev = wlc_hw->boardrev;
if (wlc_hw->sih->boardvendor == PCI_VENDOR_ID_BROADCOM) {
You could reduce indentation by having this be:
if (wlc_hw->sih->boardvendor != PCI_VENDOR_ID_BROADCOM)
return true;
/* validate boardrev */
if (boardrev == 0)
goodboard = false;
and remove the goodboard variable by having this return false immediately.
else if (boardrev> 0xff) {
You could also drop the else and have this as
if (boardrev<= 0xff)
return true;
/* 4 bits each for board type, major, minor, and tiny
version numbers */
uint brt = (boardrev& 0xf000)>> 12;
uint b0 = (boardrev& 0xf00)>> 8;
uint b1 = (boardrev& 0xf0)>> 4;
uint b2 = boardrev& 0xf;
if ((brt> 2) || (brt == 0) || (b0> 9) || (b0 == 0)
|| (b1> 9) || (b2> 9))
goodboard = false;
and return false here too.
}
}
return goodboard;
then just return true here.
}
Thanks,
--
Julian Calaby
Yea, it's a lot flatter with those changes. Look for it in a patch set
relatively soon ...
- Henry
All good points above - also, I might add a short comment to explain why
the code checks the vendor id so it's clear to people who read the code
in the future too.
Greg
_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/devel