David Brownell <davi...@pacbell.net> writes:

> From: David Brownell <dbrown...@users.sourceforge.net>
>
> Fix about half the warnings from "make C=1" (sparse), and start on
> the __iomem issues associated with the CPPI buffer descriptor data.
> All of the remaining warnings come from address space issues.  For
> this driver, fixing all those issues will be quite messy.
>
> One of these warnings highlighted minor goofiness in how the module
> infrastructure was used; fix that too.
>
> Signed-off-by: David Brownell <dbrown...@users.sourceforge.net>

Thanks, applied this series of 3 patches.

Kevin


> ---
> This is another "standard code quality tool" that should be
> used more regularly ...
>
>  drivers/net/davinci_emac.c |   81 ++++++++++++++++++++-----------------------
>  1 file changed, 39 insertions(+), 42 deletions(-)
>
> --- a/drivers/net/davinci_emac.c
> +++ b/drivers/net/davinci_emac.c
> @@ -106,7 +106,7 @@ MODULE_PARM_DESC(debug_level, "DaVinci E
>  #define EMAC_MINOR_VERSION   0
>  #define EMAC_MODULE_VERSION  "6.0"
>  MODULE_VERSION(EMAC_MODULE_VERSION);
> -const char emac_version_string[] = "TI DaVinci EMAC Linux v6.0";
> +static const char emac_version_string[] = "TI DaVinci EMAC Linux v6.0";
>  
>  /* Configuration items */
>  #define EMAC_MDIO_DEBUG              (0) /* use this debug with caution */
> @@ -401,7 +401,7 @@ struct emac_txch {
>  
>       /* CPPI specific */
>       u32 alloc_size;
> -     char *bd_mem;
> +     void __iomem *bd_mem;
>       struct emac_tx_bd *bd_pool_head;
>       struct emac_tx_bd *active_queue_head;
>       struct emac_tx_bd *active_queue_tail;
> @@ -447,7 +447,7 @@ struct emac_rxch {
>  
>       /** CPPI specific */
>       u32 alloc_size;
> -     char *bd_mem;
> +     void __iomem *bd_mem;
>       struct emac_rx_bd *bd_pool_head;
>       struct emac_rx_bd *active_queue_head;
>       struct emac_rx_bd *active_queue_tail;
> @@ -727,7 +727,7 @@ static int emac_set_settings(struct net_
>   * Ethtool support for EMAC adapter
>   *
>   */
> -struct ethtool_ops ethtool_ops = {
> +static const struct ethtool_ops ethtool_ops = {
>       .get_drvinfo = emac_get_drvinfo,
>       .get_settings = emac_get_settings,
>       .set_settings = emac_set_settings,
> @@ -968,12 +968,12 @@ static void emac_dev_mcast_set(struct ne
>               if ((ndev->flags & IFF_ALLMULTI) ||
>                   (ndev->mc_count > EMAC_DEF_MAX_MULTICAST_ADDRESSES)) {
>                       mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST);
> -                     emac_add_mcast(priv, EMAC_ALL_MULTI_SET, 0);
> +                     emac_add_mcast(priv, EMAC_ALL_MULTI_SET, NULL);
>               }
>               if (ndev->mc_count > 0) {
>                       struct dev_mc_list *mc_ptr;
>                       mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST);
> -                     emac_add_mcast(priv, EMAC_ALL_MULTI_CLR, 0);
> +                     emac_add_mcast(priv, EMAC_ALL_MULTI_CLR, NULL);
>                       /* program multicast address list into EMAC hardware */
>                       for (mc_ptr = ndev->mc_list; mc_ptr;
>                            mc_ptr = mc_ptr->next) {
> @@ -982,7 +982,7 @@ static void emac_dev_mcast_set(struct ne
>                       }
>               } else {
>                       mbp_enable = (mbp_enable & ~EMAC_MBP_RXMCAST);
> -                     emac_add_mcast(priv, EMAC_ALL_MULTI_CLR, 0);
> +                     emac_add_mcast(priv, EMAC_ALL_MULTI_CLR, NULL);
>               }
>       }
>       /* Set mbp config register */
> @@ -1064,7 +1064,7 @@ static void emac_int_enable(struct emac_
>   *
>   * Returns interrupt handled condition
>   */
> -irqreturn_t emac_irq(int irq, void *dev_id)
> +static irqreturn_t emac_irq(int irq, void *dev_id)
>  {
>       struct net_device *ndev = (struct net_device *)dev_id;
>       struct emac_priv *priv = netdev_priv(ndev);
> @@ -1089,9 +1089,9 @@ irqreturn_t emac_irq(int irq, void *dev_
>   *
>   */
>  
> -#define EMAC_TX_BD_MEM       (priv->emac_ctrl_ram)
> -#define EMAC_RX_BD_MEM       (priv->emac_ctrl_ram + \
> -                     ((priv->ctrl_ram_size) >> 1))
> +#define EMAC_TX_BD_MEM(priv) ((priv)->emac_ctrl_ram)
> +#define EMAC_RX_BD_MEM(priv) ((priv)->emac_ctrl_ram + \
> +                             (((priv)->ctrl_ram_size) >> 1))
>  
>  /**
>   * emac_init_txch: TX channel initialization
> @@ -1117,8 +1117,8 @@ static int emac_init_txch(struct emac_pr
>       }
>       priv->txch[ch] = txch;
>       txch->service_max = EMAC_DEF_TX_MAX_SERVICE;
> -     txch->active_queue_head = 0;
> -     txch->active_queue_tail = 0;
> +     txch->active_queue_head = NULL;
> +     txch->active_queue_tail = NULL;
>       txch->queue_active = 0;
>       txch->teardown_pending = 0;
>  
> @@ -1138,12 +1138,12 @@ static int emac_init_txch(struct emac_pr
>       txch->alloc_size = (((bd_size * txch->num_bd) + 0xF) & ~0xF);
>  
>       /* alloc TX BD memory */
> -     txch->bd_mem = (char *) EMAC_TX_BD_MEM;
> -     memzero(txch->bd_mem, txch->alloc_size);
> +     txch->bd_mem = EMAC_TX_BD_MEM(priv);
> +     memzero((void __force *)txch->bd_mem, txch->alloc_size);
>  
>       /* initialize the BD linked list */
>       mem = (char *)(((u32) txch->bd_mem + 0xF) & ~0xF);
> -     txch->bd_pool_head = 0;
> +     txch->bd_pool_head = NULL;
>       for (cnt = 0; cnt < txch->num_bd; cnt++) {
>               curr_bd = (struct emac_tx_bd *) (mem + (cnt * bd_size));
>               curr_bd->next = txch->bd_pool_head;
> @@ -1172,13 +1172,13 @@ static void emac_cleanup_txch(struct ema
>  
>       if (txch) {
>               if (txch->bd_mem)
> -                     txch->bd_mem = 0;
> +                     txch->bd_mem = NULL;
>               if (txch->tx_complete) {
>                       kfree(txch->tx_complete);
> -                     txch->tx_complete = 0;
> +                     txch->tx_complete = NULL;
>               }
>               kfree(txch);
> -             priv->txch[ch] = 0;
> +             priv->txch[ch] = NULL;
>       }
>  }
>  
> @@ -1251,7 +1251,7 @@ static void emac_txch_teardown(struct em
>               }
>               txch->bd_pool_head = txch->active_queue_head;
>               txch->active_queue_head =
> -             txch->active_queue_tail = 0;
> +             txch->active_queue_tail = NULL;
>       }
>  }
>  
> @@ -1313,7 +1313,7 @@ static int emac_tx_bdproc(struct emac_pr
>       ++txch->proc_count;
>       spin_lock_irqsave(&priv->tx_lock, flags);
>       curr_bd = txch->active_queue_head;
> -     if (0 == curr_bd) {
> +     if (NULL == curr_bd) {
>               emac_write(EMAC_TXCP(ch),
>                          EMAC_VIRT2PHYS(priv, txch->last_hw_bdprocessed));
>               txch->no_active_pkts++;
> @@ -1403,7 +1403,7 @@ static int emac_send(struct emac_priv *p
>       curr_bd->buff_ptr = EMAC_VIRT2PHYS(priv, (int *)buf_list->data_ptr);
>       curr_bd->off_b_len = buf_list->length;
>       curr_bd->h_next = 0;
> -     curr_bd->next = 0;
> +     curr_bd->next = NULL;
>       curr_bd->mode = (EMAC_CPPI_SOP_BIT | EMAC_CPPI_OWNERSHIP_BIT |
>                        EMAC_CPPI_EOP_BIT | pkt->pkt_length);
>  
> @@ -1411,7 +1411,7 @@ static int emac_send(struct emac_priv *p
>       BD_CACHE_WRITEBACK_INVALIDATE(curr_bd, EMAC_BD_LENGTH_FOR_CACHE);
>  
>       /* send the packet */
> -     if (txch->active_queue_head == 0) {
> +     if (txch->active_queue_head == NULL) {
>               txch->active_queue_head = curr_bd;
>               txch->active_queue_tail = curr_bd;
>               if (1 != txch->queue_active) {
> @@ -1537,17 +1537,17 @@ static void emac_dev_tx_timeout(struct n
>   *
>   * Returns skb data pointer or 0 on failure to alloc skb
>   */
> -void *emac_net_alloc_rx_buf(struct emac_priv *priv, int buf_size,
> +static void *emac_net_alloc_rx_buf(struct emac_priv *priv, int buf_size,
>               void **data_token, u32 ch)
>  {
>       struct net_device *ndev = priv->ndev;
>       struct sk_buff *p_skb;
>  
>       p_skb = dev_alloc_skb(buf_size);
> -     if (unlikely(0 == p_skb)) {
> +     if (unlikely(NULL == p_skb)) {
>               if (netif_msg_rx_err(priv) && net_ratelimit())
>                       dev_err(EMAC_DEV, "DaVinci EMAC: failed to alloc skb");
> -             return (0);
> +             return NULL;
>       }
>  
>       /* set device pointer in skb and reserve space for extra bytes */
> @@ -1597,13 +1597,13 @@ static int emac_init_rxch(struct emac_pr
>       bd_size = (sizeof(struct emac_rx_bd) + 0xF) & ~0xF;
>       rxch->num_bd = (priv->ctrl_ram_size >> 1) / bd_size;
>       rxch->alloc_size = (((bd_size * rxch->num_bd) + 0xF) & ~0xF);
> -     rxch->bd_mem = (char *) EMAC_RX_BD_MEM;
> -     memzero(rxch->bd_mem, rxch->alloc_size);
> +     rxch->bd_mem = EMAC_RX_BD_MEM(priv);
> +     memzero((void __force *)rxch->bd_mem, rxch->alloc_size);
>       rxch->pkt_queue.buf_list = &rxch->buf_queue;
>  
>       /* allocate RX buffer and initialize the BD linked list */
>       mem = (char *)(((u32) rxch->bd_mem + 0xF) & ~0xF);
> -     rxch->active_queue_head = 0;
> +     rxch->active_queue_head = NULL;
>       rxch->active_queue_tail = (struct emac_rx_bd *) mem;
>       for (cnt = 0; cnt < rxch->num_bd; cnt++) {
>               curr_bd = (struct emac_rx_bd *) (mem + (cnt * bd_size));
> @@ -1711,9 +1711,9 @@ static void emac_cleanup_rxch(struct ema
>                       curr_bd = curr_bd->next;
>               }
>               if (rxch->bd_mem)
> -                     rxch->bd_mem = 0;
> +                     rxch->bd_mem = NULL;
>               kfree(rxch);
> -             priv->rxch[ch] = 0;
> +             priv->rxch[ch] = NULL;
>       }
>  }
>  
> @@ -1873,13 +1873,13 @@ static void emac_addbd_to_rx_queue(struc
>       curr_bd->buff_ptr = EMAC_VIRT2PHYS(priv, buffer);
>       curr_bd->off_b_len = rxch->buf_size;
>       curr_bd->mode = EMAC_CPPI_OWNERSHIP_BIT;
> -     curr_bd->next = 0;
> +     curr_bd->next = NULL;
>       curr_bd->data_ptr = buffer;
>       curr_bd->buf_token = buf_token;
>  
>       /* write back  */
>       BD_CACHE_WRITEBACK_INVALIDATE(curr_bd, EMAC_BD_LENGTH_FOR_CACHE);
> -     if (rxch->active_queue_head == 0) {
> +     if (rxch->active_queue_head == NULL) {
>       rxch->active_queue_head = curr_bd;
>       rxch->active_queue_tail = curr_bd;
>       if (0 != rxch->queue_active) {
> @@ -1981,7 +1981,7 @@ static int emac_rx_bdproc(struct emac_pr
>               new_buffer = (void *)(emac_net_alloc_rx_buf(priv,
>                                       EMAC_DEF_MAX_FRAME_SIZE,
>                                       &new_buf_token, EMAC_DEF_RX_CH));
> -             if (unlikely(0 == new_buffer)) {
> +             if (unlikely(NULL == new_buffer)) {
>                       ++rxch->out_of_rx_buffers;
>                       goto end_emac_rx_bdproc;
>               }
> @@ -2681,7 +2681,7 @@ static int __devinit davinci_emac_probe(
>               rc = -ENOENT;
>               goto no_ctrl_ram_res;
>       }
> -     priv->emac_ctrl_ram = (char *)IO_ADDRESS(res->start);
> +     priv->emac_ctrl_ram = IO_ADDRESS(res->start);
>       priv->ctrl_ram_size = res->end - res->start + 1;
>       if (!request_mem_region(res->start,
>                               (res->end - res->start + 1),
> @@ -2701,7 +2701,7 @@ static int __devinit davinci_emac_probe(
>       ndev->irq = res->start;
>  
>       /* populate the device structure */
> -     ndev->validate_addr = 0;
> +     ndev->validate_addr = NULL;
>       ndev->open = emac_dev_open;   /*  i.e. start device  */
>       ndev->stop = emac_dev_stop;
>       ndev->do_ioctl = emac_devioctl;
> @@ -2859,12 +2859,11 @@ static struct platform_driver davinci_em
>   * Called when initializing the driver. We register the driver with
>   * the platform.
>   */
> -static int __devinit davinci_emac_init(void)
> +static int __init davinci_emac_init(void)
>  {
> -     /* TODO: use mii/phy linux infrastructure and register mdio device */
> -     printk(KERN_INFO "%s driver initialized\n", emac_version_string);
>       return platform_driver_register(&davinci_emac_driver);
>  }
> +module_init(davinci_emac_init);
>  
>  /**
>   * davinci_emac_exit: EMAC driver module exit
> @@ -2872,12 +2871,10 @@ static int __devinit davinci_emac_init(v
>   * Called when exiting the driver completely. We unregister the driver with
>   * the platform and exit
>   */
> -void __devexit davinci_emac_exit(void)
> +static void __exit davinci_emac_exit(void)
>  {
>       platform_driver_unregister(&davinci_emac_driver);
>  }
> -
> -module_init(davinci_emac_init);
>  module_exit(davinci_emac_exit);
>  
>  MODULE_LICENSE("GPL");
>
> _______________________________________________
> Davinci-linux-open-source mailing list
> Davinci-linux-open-source@linux.davincidsp.com
> http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

_______________________________________________
Davinci-linux-open-source mailing list
Davinci-linux-open-source@linux.davincidsp.com
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to