staging: wilc1000: use g_linux_wlan->txq_spinlock not the pointer of it
Use spinlock variable g_linux_wlan->txq_spinlock itself instead of g_wlan.txq_spinlock which is pointer of g_linux_wlan->txq_spinlock. Delete os_context.txq_spin_lock, g_wlan.txq_spinlock and it's related codes. Signed-off-by: Glen Lee <glen.lee@atmel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
ef2b784c30
commit
85e57567f2
4 changed files with 18 additions and 23 deletions
|
@ -1062,8 +1062,6 @@ void linux_to_wlan(wilc_wlan_inp_t *nwi, linux_wlan_t *nic)
|
||||||
|
|
||||||
nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs;
|
nwi->os_context.txq_add_to_head_critical_section = (void *)&g_linux_wlan->txq_add_to_head_cs;
|
||||||
|
|
||||||
nwi->os_context.txq_spin_lock = (void *)&g_linux_wlan->txq_spinlock;
|
|
||||||
|
|
||||||
nwi->os_context.txq_wait_event = (void *)&g_linux_wlan->txq_event;
|
nwi->os_context.txq_wait_event = (void *)&g_linux_wlan->txq_event;
|
||||||
|
|
||||||
#if defined(MEMORY_STATIC)
|
#if defined(MEMORY_STATIC)
|
||||||
|
|
|
@ -215,6 +215,7 @@ struct WILC_WFI_mon_priv {
|
||||||
struct net_device *real_ndev;
|
struct net_device *real_ndev;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern linux_wlan_t *g_linux_wlan;
|
||||||
extern struct net_device *WILC_WFI_devs[];
|
extern struct net_device *WILC_WFI_devs[];
|
||||||
void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
|
void frmw_to_linux(u8 *buff, u32 size, u32 pkt_offset);
|
||||||
void linux_wlan_mac_indicate(int flag);
|
void linux_wlan_mac_indicate(int flag);
|
||||||
|
|
|
@ -70,7 +70,6 @@ typedef struct {
|
||||||
void *txq_lock;
|
void *txq_lock;
|
||||||
|
|
||||||
struct semaphore *txq_add_to_head_lock;
|
struct semaphore *txq_add_to_head_lock;
|
||||||
void *txq_spinlock;
|
|
||||||
unsigned long txq_spinlock_flags;
|
unsigned long txq_spinlock_flags;
|
||||||
|
|
||||||
struct txq_entry_t *txq_head;
|
struct txq_entry_t *txq_head;
|
||||||
|
@ -179,7 +178,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void)
|
||||||
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(p->txq_spinlock, flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
|
||||||
if (p->txq_head) {
|
if (p->txq_head) {
|
||||||
tqe = p->txq_head;
|
tqe = p->txq_head;
|
||||||
p->txq_head = tqe->next;
|
p->txq_head = tqe->next;
|
||||||
|
@ -194,7 +193,7 @@ static struct txq_entry_t *wilc_wlan_txq_remove_from_head(void)
|
||||||
} else {
|
} else {
|
||||||
tqe = NULL;
|
tqe = NULL;
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
|
||||||
return tqe;
|
return tqe;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -202,7 +201,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe)
|
||||||
{
|
{
|
||||||
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
spin_lock_irqsave(p->txq_spinlock, flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
if (p->txq_head == NULL) {
|
if (p->txq_head == NULL) {
|
||||||
tqe->next = NULL;
|
tqe->next = NULL;
|
||||||
|
@ -218,7 +217,7 @@ static void wilc_wlan_txq_add_to_tail(struct txq_entry_t *tqe)
|
||||||
p->txq_entries += 1;
|
p->txq_entries += 1;
|
||||||
PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
|
PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
|
||||||
|
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wake up TX queue
|
* wake up TX queue
|
||||||
|
@ -235,7 +234,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
|
||||||
if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT))
|
if (p->os_func.os_wait(p->txq_add_to_head_lock, CFG_PKTS_TIMEOUT))
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
spin_lock_irqsave(p->txq_spinlock, flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
if (p->txq_head == NULL) {
|
if (p->txq_head == NULL) {
|
||||||
tqe->next = NULL;
|
tqe->next = NULL;
|
||||||
|
@ -251,7 +250,7 @@ static int wilc_wlan_txq_add_to_head(struct txq_entry_t *tqe)
|
||||||
p->txq_entries += 1;
|
p->txq_entries += 1;
|
||||||
PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
|
PRINT_D(TX_DBG, "Number of entries in TxQ = %d\n", p->txq_entries);
|
||||||
|
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
|
||||||
up(p->txq_add_to_head_lock);
|
up(p->txq_add_to_head_lock);
|
||||||
|
|
||||||
|
|
||||||
|
@ -352,9 +351,9 @@ static inline int remove_TCP_related(void)
|
||||||
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(p->txq_spinlock, flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,7 +367,7 @@ static inline int tcp_process(struct txq_entry_t *tqe)
|
||||||
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(p->txq_spinlock, flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
eth_hdr_ptr = &buffer[0];
|
eth_hdr_ptr = &buffer[0];
|
||||||
h_proto = ntohs(*((unsigned short *)ð_hdr_ptr[12]));
|
h_proto = ntohs(*((unsigned short *)ð_hdr_ptr[12]));
|
||||||
|
@ -416,7 +415,7 @@ static inline int tcp_process(struct txq_entry_t *tqe)
|
||||||
} else {
|
} else {
|
||||||
ret = 0;
|
ret = 0;
|
||||||
}
|
}
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -428,7 +427,7 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void)
|
||||||
u32 Dropped = 0;
|
u32 Dropped = 0;
|
||||||
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
||||||
|
|
||||||
spin_lock_irqsave(p->txq_spinlock, p->txq_spinlock_flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, p->txq_spinlock_flags);
|
||||||
for (i = PendingAcks_arrBase; i < (PendingAcks_arrBase + Pending_Acks); i++) {
|
for (i = PendingAcks_arrBase; i < (PendingAcks_arrBase + Pending_Acks); i++) {
|
||||||
if (Pending_Acks_info[i].ack_num < Acks_keep_track_info[Pending_Acks_info[i].Session_index].Bigger_Ack_num) {
|
if (Pending_Acks_info[i].ack_num < Acks_keep_track_info[Pending_Acks_info[i].Session_index].Bigger_Ack_num) {
|
||||||
struct txq_entry_t *tqe;
|
struct txq_entry_t *tqe;
|
||||||
|
@ -455,7 +454,8 @@ static int wilc_wlan_txq_filter_dup_tcp_ack(void)
|
||||||
PendingAcks_arrBase = 0;
|
PendingAcks_arrBase = 0;
|
||||||
|
|
||||||
|
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, p->txq_spinlock_flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock,
|
||||||
|
p->txq_spinlock_flags);
|
||||||
|
|
||||||
while (Dropped > 0) {
|
while (Dropped > 0) {
|
||||||
/*consume the semaphore count of the removed packet*/
|
/*consume the semaphore count of the removed packet*/
|
||||||
|
@ -576,11 +576,11 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void)
|
||||||
struct txq_entry_t *tqe;
|
struct txq_entry_t *tqe;
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
|
|
||||||
spin_lock_irqsave(p->txq_spinlock, flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
tqe = p->txq_head;
|
tqe = p->txq_head;
|
||||||
|
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
|
|
||||||
return tqe;
|
return tqe;
|
||||||
|
@ -588,12 +588,11 @@ static struct txq_entry_t *wilc_wlan_txq_get_first(void)
|
||||||
|
|
||||||
static struct txq_entry_t *wilc_wlan_txq_get_next(struct txq_entry_t *tqe)
|
static struct txq_entry_t *wilc_wlan_txq_get_next(struct txq_entry_t *tqe)
|
||||||
{
|
{
|
||||||
wilc_wlan_dev_t *p = (wilc_wlan_dev_t *)&g_wlan;
|
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
spin_lock_irqsave(p->txq_spinlock, flags);
|
spin_lock_irqsave(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
tqe = tqe->next;
|
tqe = tqe->next;
|
||||||
spin_unlock_irqrestore(p->txq_spinlock, flags);
|
spin_unlock_irqrestore(&g_linux_wlan->txq_spinlock, flags);
|
||||||
|
|
||||||
|
|
||||||
return tqe;
|
return tqe;
|
||||||
|
@ -1975,8 +1974,6 @@ int wilc_wlan_init(wilc_wlan_inp_t *inp, wilc_wlan_oup_t *oup)
|
||||||
|
|
||||||
g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
|
g_wlan.txq_add_to_head_lock = inp->os_context.txq_add_to_head_critical_section;
|
||||||
|
|
||||||
g_wlan.txq_spinlock = inp->os_context.txq_spin_lock;
|
|
||||||
|
|
||||||
g_wlan.rxq_lock = inp->os_context.rxq_critical_section;
|
g_wlan.rxq_lock = inp->os_context.rxq_critical_section;
|
||||||
g_wlan.txq_wait = inp->os_context.txq_wait_event;
|
g_wlan.txq_wait = inp->os_context.txq_wait_event;
|
||||||
g_wlan.cfg_wait = inp->os_context.cfg_wait_event;
|
g_wlan.cfg_wait = inp->os_context.cfg_wait_event;
|
||||||
|
|
|
@ -114,7 +114,6 @@ typedef struct {
|
||||||
void *txq_critical_section;
|
void *txq_critical_section;
|
||||||
|
|
||||||
void *txq_add_to_head_critical_section;
|
void *txq_add_to_head_critical_section;
|
||||||
void *txq_spin_lock;
|
|
||||||
|
|
||||||
void *txq_wait_event;
|
void *txq_wait_event;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue