If a Broadcom wireless driver is pre-loaded, the entire system state can become indeterminate (other driver modules are not properly loaded by the kernel).  This behavior has been seen on multiple broadcom drivers (brcmfmac and brcmsmac) on multiple platforms (both x86 and ARM).

BUG=chromium-os:13152
TEST=Add debugging logic to file and restart udev with brcmfmac in preload-wifie-driver
 Restart udev without it
 Observe in both cases the proper execution path (skipping or performing preload)
  Burnt a fresh image with the change.  Rebooted multiple times and observed correct behavior each reboot

Review URL: http://codereview.chromium.org/6677181

Change-Id: I4ef4192685ec099e7b6ad0085189b51d0522af10
diff --git a/udev-addon.conf b/udev-addon.conf
index 86378e8..52b7db4 100644
--- a/udev-addon.conf
+++ b/udev-addon.conf
@@ -33,8 +33,12 @@
       olddrv=$(head -1 $drvfile)
     fi
 
+    # Blacklist brcm drivers
+    # TODO: investigate true cause of the problem and remove blacklist
+    if [ "$(echo $drv | head -c4)" = "brcm" ] ; then
+      rm -f $drvfile
     # Only update contents if they've changed.
-    if [ "$drv" != "$olddrv" ] ; then
+    elif [ "$drv" != "$olddrv" ] ; then
       echo "$drv" > $drvfile
     fi
   else