Commit fcc2cf12 authored by Geliang Tang's avatar Geliang Tang Committed by Greg Kroah-Hartman

staging: rtl8712: use container_of() instead of LIST_CONTAINOR()

This patch drops the local definition of LIST_CONTAINOR(), and uses
container_of() instead of it.
Signed-off-by: default avatarGeliang Tang <geliangtang@163.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3faa966b
...@@ -57,9 +57,6 @@ struct __queue { ...@@ -57,9 +57,6 @@ struct __queue {
spin_lock_init(&((pqueue)->lock)); \ spin_lock_init(&((pqueue)->lock)); \
} while (0) } while (0)
#define LIST_CONTAINOR(ptr, type, member) \
((type *)((char *)(ptr)-(SIZE_T)(&((type *)0)->member)))
static inline u32 _down_sema(struct semaphore *sema) static inline u32 _down_sema(struct semaphore *sema)
{ {
if (down_interruptible(sema)) if (down_interruptible(sema))
......
...@@ -204,7 +204,7 @@ static union recv_frame *recvframe_defrag(struct _adapter *adapter, ...@@ -204,7 +204,7 @@ static union recv_frame *recvframe_defrag(struct _adapter *adapter,
pfree_recv_queue = &adapter->recvpriv.free_recv_queue; pfree_recv_queue = &adapter->recvpriv.free_recv_queue;
phead = &defrag_q->queue; phead = &defrag_q->queue;
plist = phead->next; plist = phead->next;
prframe = LIST_CONTAINOR(plist, union recv_frame, u); prframe = container_of(plist, union recv_frame, u.list);
list_del_init(&prframe->u.list); list_del_init(&prframe->u.list);
pfhdr = &prframe->u.hdr; pfhdr = &prframe->u.hdr;
curfragnum = 0; curfragnum = 0;
...@@ -219,7 +219,7 @@ static union recv_frame *recvframe_defrag(struct _adapter *adapter, ...@@ -219,7 +219,7 @@ static union recv_frame *recvframe_defrag(struct _adapter *adapter,
plist = &defrag_q->queue; plist = &defrag_q->queue;
plist = plist->next; plist = plist->next;
while (!end_of_queue_search(phead, plist)) { while (!end_of_queue_search(phead, plist)) {
pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u); pnextrframe = container_of(plist, union recv_frame, u.list);
pnfhdr = &pnextrframe->u.hdr; pnfhdr = &pnextrframe->u.hdr;
/*check the fragment sequence (2nd ~n fragment frame) */ /*check the fragment sequence (2nd ~n fragment frame) */
if (curfragnum != pnfhdr->attrib.frag_num) { if (curfragnum != pnfhdr->attrib.frag_num) {
...@@ -492,7 +492,7 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl, ...@@ -492,7 +492,7 @@ static int enqueue_reorder_recvframe(struct recv_reorder_ctrl *preorder_ctrl,
phead = &ppending_recvframe_queue->queue; phead = &ppending_recvframe_queue->queue;
plist = phead->next; plist = phead->next;
while (!end_of_queue_search(phead, plist)) { while (!end_of_queue_search(phead, plist)) {
pnextrframe = LIST_CONTAINOR(plist, union recv_frame, u); pnextrframe = container_of(plist, union recv_frame, u.list);
pnextattrib = &pnextrframe->u.hdr.attrib; pnextattrib = &pnextrframe->u.hdr.attrib;
if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num)) if (SN_LESS(pnextattrib->seq_num, pattrib->seq_num))
plist = plist->next; plist = plist->next;
...@@ -525,14 +525,14 @@ int r8712_recv_indicatepkts_in_order(struct _adapter *padapter, ...@@ -525,14 +525,14 @@ int r8712_recv_indicatepkts_in_order(struct _adapter *padapter,
if (list_empty(phead)) if (list_empty(phead))
return true; return true;
prframe = LIST_CONTAINOR(plist, union recv_frame, u); prframe = container_of(plist, union recv_frame, u.list);
pattrib = &prframe->u.hdr.attrib; pattrib = &prframe->u.hdr.attrib;
preorder_ctrl->indicate_seq = pattrib->seq_num; preorder_ctrl->indicate_seq = pattrib->seq_num;
} }
/* Prepare indication list and indication. /* Prepare indication list and indication.
* Check if there is any packet need indicate. */ * Check if there is any packet need indicate. */
while (!list_empty(phead)) { while (!list_empty(phead)) {
prframe = LIST_CONTAINOR(plist, union recv_frame, u); prframe = container_of(plist, union recv_frame, u.list);
pattrib = &prframe->u.hdr.attrib; pattrib = &prframe->u.hdr.attrib;
if (!SN_LESS(preorder_ctrl->indicate_seq, pattrib->seq_num)) { if (!SN_LESS(preorder_ctrl->indicate_seq, pattrib->seq_num)) {
plist = plist->next; plist = plist->next;
......
...@@ -169,8 +169,8 @@ static struct xmit_frame *dequeue_one_xmitframe(struct xmit_priv *pxmitpriv, ...@@ -169,8 +169,8 @@ static struct xmit_frame *dequeue_one_xmitframe(struct xmit_priv *pxmitpriv,
xmitframe_phead = &pframe_queue->queue; xmitframe_phead = &pframe_queue->queue;
xmitframe_plist = xmitframe_phead->next; xmitframe_plist = xmitframe_phead->next;
if (!end_of_queue_search(xmitframe_phead, xmitframe_plist)) { if (!end_of_queue_search(xmitframe_phead, xmitframe_plist)) {
pxmitframe = LIST_CONTAINOR(xmitframe_plist, pxmitframe = container_of(xmitframe_plist,
struct xmit_frame, list); struct xmit_frame, list);
list_del_init(&pxmitframe->list); list_del_init(&pxmitframe->list);
ptxservq->qcnt--; ptxservq->qcnt--;
phwxmit->txcmdcnt++; phwxmit->txcmdcnt++;
...@@ -209,8 +209,8 @@ static struct xmit_frame *dequeue_xframe_ex(struct xmit_priv *pxmitpriv, ...@@ -209,8 +209,8 @@ static struct xmit_frame *dequeue_xframe_ex(struct xmit_priv *pxmitpriv,
sta_phead = &phwxmit->sta_queue->queue; sta_phead = &phwxmit->sta_queue->queue;
sta_plist = sta_phead->next; sta_plist = sta_phead->next;
while (!end_of_queue_search(sta_phead, sta_plist)) { while (!end_of_queue_search(sta_phead, sta_plist)) {
ptxservq = LIST_CONTAINOR(sta_plist, struct tx_servq, ptxservq = container_of(sta_plist, struct tx_servq,
tx_pending); tx_pending);
pframe_queue = &ptxservq->sta_pending; pframe_queue = &ptxservq->sta_pending;
pxmitframe = dequeue_one_xmitframe(pxmitpriv, phwxmit, pxmitframe = dequeue_one_xmitframe(pxmitpriv, phwxmit,
ptxservq, pframe_queue); ptxservq, pframe_queue);
......
...@@ -1060,8 +1060,8 @@ static int r8711_wx_set_wap(struct net_device *dev, ...@@ -1060,8 +1060,8 @@ static int r8711_wx_set_wap(struct net_device *dev,
while (1) { while (1) {
if (end_of_queue_search(phead, pmlmepriv->pscanned)) if (end_of_queue_search(phead, pmlmepriv->pscanned))
break; break;
pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, pnetwork = container_of(pmlmepriv->pscanned,
struct wlan_network, list); struct wlan_network, list);
pmlmepriv->pscanned = pmlmepriv->pscanned->next; pmlmepriv->pscanned = pmlmepriv->pscanned->next;
dst_bssid = pnetwork->network.MacAddress; dst_bssid = pnetwork->network.MacAddress;
if (!memcmp(dst_bssid, temp->sa_data, ETH_ALEN)) { if (!memcmp(dst_bssid, temp->sa_data, ETH_ALEN)) {
...@@ -1216,7 +1216,7 @@ static int r8711_wx_get_scan(struct net_device *dev, ...@@ -1216,7 +1216,7 @@ static int r8711_wx_get_scan(struct net_device *dev,
ret = -E2BIG; ret = -E2BIG;
break; break;
} }
pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); pnetwork = container_of(plist, struct wlan_network, list);
ev = translate_scan(padapter, a, pnetwork, ev, stop); ev = translate_scan(padapter, a, pnetwork, ev, stop);
plist = plist->next; plist = plist->next;
} }
...@@ -1271,8 +1271,8 @@ static int r8711_wx_set_essid(struct net_device *dev, ...@@ -1271,8 +1271,8 @@ static int r8711_wx_set_essid(struct net_device *dev,
while (1) { while (1) {
if (end_of_queue_search(phead, pmlmepriv->pscanned)) if (end_of_queue_search(phead, pmlmepriv->pscanned))
break; break;
pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, pnetwork = container_of(pmlmepriv->pscanned,
struct wlan_network, list); struct wlan_network, list);
pmlmepriv->pscanned = pmlmepriv->pscanned->next; pmlmepriv->pscanned = pmlmepriv->pscanned->next;
dst_ssid = pnetwork->network.Ssid.Ssid; dst_ssid = pnetwork->network.Ssid.Ssid;
if ((!memcmp(dst_ssid, src_ssid, ndis_ssid.SsidLength)) if ((!memcmp(dst_ssid, src_ssid, ndis_ssid.SsidLength))
...@@ -1986,7 +1986,7 @@ static int r871x_get_ap_info(struct net_device *dev, ...@@ -1986,7 +1986,7 @@ static int r871x_get_ap_info(struct net_device *dev,
while (1) { while (1) {
if (end_of_queue_search(phead, plist)) if (end_of_queue_search(phead, plist))
break; break;
pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); pnetwork = container_of(plist, struct wlan_network, list);
if (!mac_pton(data, bssid)) { if (!mac_pton(data, bssid)) {
netdev_info(dev, "r8712u: Invalid BSSID '%s'.\n", netdev_info(dev, "r8712u: Invalid BSSID '%s'.\n",
(u8 *)data); (u8 *)data);
......
...@@ -155,7 +155,7 @@ static struct wlan_network *_r8712_find_network(struct __queue *scanned_queue, ...@@ -155,7 +155,7 @@ static struct wlan_network *_r8712_find_network(struct __queue *scanned_queue,
phead = &scanned_queue->queue; phead = &scanned_queue->queue;
plist = phead->next; plist = phead->next;
while (plist != phead) { while (plist != phead) {
pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); pnetwork = container_of(plist, struct wlan_network, list);
plist = plist->next; plist = plist->next;
if (!memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN)) if (!memcmp(addr, pnetwork->network.MacAddress, ETH_ALEN))
break; break;
...@@ -176,7 +176,7 @@ static void _free_network_queue(struct _adapter *padapter) ...@@ -176,7 +176,7 @@ static void _free_network_queue(struct _adapter *padapter)
phead = &scanned_queue->queue; phead = &scanned_queue->queue;
plist = phead->next; plist = phead->next;
while (!end_of_queue_search(phead, plist)) { while (!end_of_queue_search(phead, plist)) {
pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); pnetwork = container_of(plist, struct wlan_network, list);
plist = plist->next; plist = plist->next;
_free_network(pmlmepriv, pnetwork); _free_network(pmlmepriv, pnetwork);
} }
...@@ -304,7 +304,7 @@ struct wlan_network *r8712_get_oldest_wlan_network( ...@@ -304,7 +304,7 @@ struct wlan_network *r8712_get_oldest_wlan_network(
while (1) { while (1) {
if (end_of_queue_search(phead, plist) == true) if (end_of_queue_search(phead, plist) == true)
break; break;
pwlan = LIST_CONTAINOR(plist, struct wlan_network, list); pwlan = container_of(plist, struct wlan_network, list);
if (pwlan->fixed != true) { if (pwlan->fixed != true) {
if (oldest == NULL || if (oldest == NULL ||
time_after((unsigned long)oldest->last_scanned, time_after((unsigned long)oldest->last_scanned,
...@@ -390,7 +390,7 @@ static void update_scanned_network(struct _adapter *adapter, ...@@ -390,7 +390,7 @@ static void update_scanned_network(struct _adapter *adapter,
if (end_of_queue_search(phead, plist)) if (end_of_queue_search(phead, plist))
break; break;
pnetwork = LIST_CONTAINOR(plist, struct wlan_network, list); pnetwork = container_of(plist, struct wlan_network, list);
if (is_same_network(&pnetwork->network, target)) if (is_same_network(&pnetwork->network, target))
break; break;
if ((oldest == ((struct wlan_network *)0)) || if ((oldest == ((struct wlan_network *)0)) ||
...@@ -1135,8 +1135,8 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv) ...@@ -1135,8 +1135,8 @@ int r8712_select_and_join_from_scan(struct mlme_priv *pmlmepriv)
} }
return _FAIL; return _FAIL;
} }
pnetwork = LIST_CONTAINOR(pmlmepriv->pscanned, pnetwork = container_of(pmlmepriv->pscanned,
struct wlan_network, list); struct wlan_network, list);
if (pnetwork == NULL) if (pnetwork == NULL)
return _FAIL; return _FAIL;
pmlmepriv->pscanned = pmlmepriv->pscanned->next; pmlmepriv->pscanned = pmlmepriv->pscanned->next;
......
...@@ -142,7 +142,7 @@ void r8712_free_recvframe_queue(struct __queue *pframequeue, ...@@ -142,7 +142,7 @@ void r8712_free_recvframe_queue(struct __queue *pframequeue,
phead = &pframequeue->queue; phead = &pframequeue->queue;
plist = phead->next; plist = phead->next;
while (!end_of_queue_search(phead, plist)) { while (!end_of_queue_search(phead, plist)) {
precvframe = LIST_CONTAINOR(plist, union recv_frame, u); precvframe = container_of(plist, union recv_frame, u.list);
plist = plist->next; plist = plist->next;
r8712_free_recvframe(precvframe, pfree_recv_queue); r8712_free_recvframe(precvframe, pfree_recv_queue);
} }
......
...@@ -216,8 +216,8 @@ void r8712_free_all_stainfo(struct _adapter *padapter) ...@@ -216,8 +216,8 @@ void r8712_free_all_stainfo(struct _adapter *padapter)
phead = &(pstapriv->sta_hash[index]); phead = &(pstapriv->sta_hash[index]);
plist = phead->next; plist = phead->next;
while (!end_of_queue_search(phead, plist)) { while (!end_of_queue_search(phead, plist)) {
psta = LIST_CONTAINOR(plist, psta = container_of(plist,
struct sta_info, hash_list); struct sta_info, hash_list);
plist = plist->next; plist = plist->next;
if (pbcmc_stainfo != psta) if (pbcmc_stainfo != psta)
r8712_free_stainfo(padapter, psta); r8712_free_stainfo(padapter, psta);
...@@ -241,7 +241,7 @@ struct sta_info *r8712_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr) ...@@ -241,7 +241,7 @@ struct sta_info *r8712_get_stainfo(struct sta_priv *pstapriv, u8 *hwaddr)
phead = &(pstapriv->sta_hash[index]); phead = &(pstapriv->sta_hash[index]);
plist = phead->next; plist = phead->next;
while (!end_of_queue_search(phead, plist)) { while (!end_of_queue_search(phead, plist)) {
psta = LIST_CONTAINOR(plist, struct sta_info, hash_list); psta = container_of(plist, struct sta_info, hash_list);
if ((!memcmp(psta->hwaddr, hwaddr, ETH_ALEN))) { if ((!memcmp(psta->hwaddr, hwaddr, ETH_ALEN))) {
/* if found the matched address */ /* if found the matched address */
break; break;
......
...@@ -848,7 +848,7 @@ void r8712_free_xmitframe_queue(struct xmit_priv *pxmitpriv, ...@@ -848,7 +848,7 @@ void r8712_free_xmitframe_queue(struct xmit_priv *pxmitpriv,
phead = &pframequeue->queue; phead = &pframequeue->queue;
plist = phead->next; plist = phead->next;
while (!end_of_queue_search(phead, plist)) { while (!end_of_queue_search(phead, plist)) {
pxmitframe = LIST_CONTAINOR(plist, struct xmit_frame, list); pxmitframe = container_of(plist, struct xmit_frame, list);
plist = plist->next; plist = plist->next;
r8712_free_xmitframe(pxmitpriv, pxmitframe); r8712_free_xmitframe(pxmitpriv, pxmitframe);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment