Re: [PATCH v2 3/3] net: netcp: rework the code for get/set sw_data in dma desc

From: Arnd Bergmann
Date: Fri Feb 19 2016 - 15:55:30 EST


On Friday 19 February 2016 12:58:44 Murali Karicheri wrote:
> SW data field in descriptor can be used by software to hold private
> data for the driver. As there are 4 words available for this purpose,
> use separate macros to place it or retrieve the same to/from
> descriptors. Also do type cast of data types accordingly.
>
> Cc: Wingman Kwok <w-kwok2@xxxxxx>
> Cc: Mugunthan V N <mugunthanvnm@xxxxxx>
> CC: Arnd Bergmann <arnd@xxxxxxxx>
> CC: Grygorii Strashko <grygorii.strashko@xxxxxx>
> CC: David Laight <David.Laight@xxxxxxxxxx>
> Signed-off-by: Murali Karicheri <m-karicheri2@xxxxxx>

Looks ok in principle.

Acked-by: Arnd Bergmann <arnd@xxxxxxxx>

> get_pkt_info(&dma_buf, &tmp, &dma_desc, ndesc);
> - get_sw_data((u32 *)&buf_ptr, &buf_len, ndesc);
> + /* warning!!!! We are retrieving the virtual ptr in the sw_data
> + * field as a 32bit value. Will not work on 64bit machines
> + */
> + buf_ptr = (void *)GET_SW_DATA0(ndesc);
> + buf_len = (int)GET_SW_DATA1(desc);

I would have abstracted the retrieval of a pointer again,
and added the comment in the helper function once, it doesn't
really need to be duplicated everywhere.

Arnd