On Tue, 14 Sep 2010 10:59:22 -0400
Alexandre Bounine <alexandre.boun...@idt.com> wrote:

> +static int
> +idtg2_route_add_entry(struct rio_mport *mport, u16 destid, u8 hopcount,
> +                    u16 table, u16 route_destid, u8 route_port)
> +{
> +     /*
> +      * Select routing table to update
> +      */
> +     if (table == RIO_GLOBAL_TABLE)
> +             table = 0;
> +     else
> +             table++;
> +
> +     rio_mport_write_config_32(mport, destid, hopcount,
> +                               LOCAL_RTE_CONF_DESTID_SEL, table);
> +
> +     /*
> +      * Program destination port for the specified destID
> +      */
> +     rio_mport_write_config_32(mport, destid, hopcount,
> +                               RIO_STD_RTE_CONF_DESTID_SEL_CSR,
> +                               (u32)route_destid);
> +
> +     rio_mport_write_config_32(mport, destid, hopcount,
> +                               RIO_STD_RTE_CONF_PORT_SEL_CSR,
> +                               (u32)route_port);
> +     udelay(10);
> +
> +     return 0;
> +}

The handling of `table' is strange.  One would expect the caller of
this function to provide the correct table index, and for the caller to
increment that index at an appropriate time.

So I take a look around but cannot find any means by which
->add_entry() is called with anything other than RIO_GLOBAL_TABLE. 
Maybe I missed something.  Is this all dead code?
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to