Showing error 1044

User: Jiri Slaby
Error type: Leaving function in locked state
Error type description: Some lock is not unlocked on all paths of a function, so it is leaked
File location: drivers/net/wireless/ath9k/xmit.c
Line in file: 1846
Project: Linux Kernel
Project version: 2.6.28
Tools: Undetermined 1
Entered: 2012-03-04 17:07:06 UTC


Source:

1816                /* update baw for software retried frame */
1817                if (bf_isretried(bf))
1818                        ath_tx_update_baw(sc, tid, bf->bf_seqno);
1819
1820                /*
1821                 * do not indicate packets while holding txq spinlock.
1822                 * unlock is intentional here
1823                 */
1824                if (likely(bh_flag))
1825                        spin_unlock_bh(&txq->axq_lock);
1826                else
1827                        spin_unlock(&txq->axq_lock);
1828
1829                /* complete this sub-frame */
1830                ath_tx_complete_buf(sc, bf, &bf_head, 0, 0);
1831
1832                if (likely(bh_flag))
1833                        spin_lock_bh(&txq->axq_lock);
1834                else
1835                        spin_lock(&txq->axq_lock);
1836        }
1837
1838        /*
1839         * TODO: For frame(s) that are in the retry state, we will reuse the
1840         * sequence number(s) without setting the retry bit. The
1841         * alternative is to give up on these and BAR the receiver's window
1842         * forward.
1843         */
1844        tid->seq_next = tid->seq_start;
1845        tid->baw_tail = tid->baw_head;
1846}
1847
1848/*
1849 * Drain all pending buffers
1850 * NB: must be called with txq lock held
1851 */
1852
1853static void ath_txq_drain_pending_buffers(struct ath_softc *sc,
1854                                          struct ath_txq *txq,
1855                                          bool bh_flag)
1856{
Show full sources