On Fri, 2011-01-07 at 17:10 -0800, Bing Zhao wrote: > + tx_ba_tsr_tbl = (struct mwifiex_tx_ba_stream_tbl *) > + priv->tx_ba_stream_tbl_ptr.next; Don't do that. Always use list_first_entry() etc, because otherwise the struct list_head must be the first member in the struct, which is very non-ideomatic and everybody who is used to the kernel will get it wrong when modifying your driver. Treat struct list_head as completely opaque -- never look into it. There are macros for any kind of manipulation with it. Also, all your loops are open coded -- use list_for_each_entry() instead of doing that (even the code I quoted above is from an open coded loop) johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html