[PATCH 12/14] spidernet: check if firmware was loaded correctly

Milton Miller miltonm at bga.com
Thu Dec 8 04:24:21 EST 2005


On Tue Dec 6 14:52:32 EST 2005, Arnd Bergmann wrote:
> Uploading the device firmware may fail if wrong input data
> was provided by the user. This checks for the condition.
>
> From: Jens.Osterkamp at de.ibm.com
> Cc: netdev at vger.kernel.org
> Signed-off-by: Arnd Bergmann <arndb at de.ibm.com>
>
> Index: linux-2.6.15-rc/drivers/net/spider_net.c
> ===================================================================
> --- linux-2.6.15-rc.orig/drivers/net/spider_net.c
> +++ linux-2.6.15-rc/drivers/net/spider_net.c
> @@ -1836,7 +1836,7 @@ spider_net_setup_phy(struct spider_net_c
>   * spider_net_download_firmware loads the firmware opened by
>   * spider_net_init_firmware into the adapter.
>   */
> -static void
> +static int
>  spider_net_download_firmware(struct spider_net_card *card,
>                              const struct firmware *firmware)
>  {
> @@ -1857,8 +1857,13 @@ spider_net_download_firmware(struct spid
>                 }
>         }
>
> +       if (spider_net_read_reg(card, SPIDER_NET_GSINIT))
> +               return -EIO;
> +
>         spider_net_write_reg(card, SPIDER_NET_GSINIT,
>                              SPIDER_NET_RUN_SEQ_VALUE);
> +
> +       return 0;
>  }
>
>  /**
> @@ -1909,9 +1914,8 @@ spider_net_init_firmware(struct spider_n
>                 goto out;
>         }
>
> -       spider_net_download_firmware(card, firmware);
> -
> -       err = 0;
> +       if (!spider_net_download_firmware(card, firmware))
> +               err = 0;

Why not assign err to the return of spider_net_download_firmware?

>  out:
>         release_firmware(firmware);
>
> Index: linux-2.6.15-rc/drivers/net/spider_net.h
> ===================================================================
> --- linux-2.6.15-rc.orig/drivers/net/spider_net.h
> +++ linux-2.6.15-rc/drivers/net/spider_net.h
> @@ -155,7 +155,7 @@ extern char spider_net_driver_name[];
>  /* set this first, then the FRAMENUM_VALUE */
>  #define SPIDER_NET_GFXFRAMES_VALUE     0x00000000
>
> -#define SPIDER_NET_STOP_SEQ_VALUE      0x00000000
> +#define SPIDER_NET_STOP_SEQ_VALUE      0x007e0000
>  #define SPIDER_NET_RUN_SEQ_VALUE       0x0000007e
>
>  #define SPIDER_NET_PHY_CTRL_VALUE      0x00040040
>

milton




More information about the Linuxppc64-dev mailing list