]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Staging: benet: cleanup a check while posting rx buffers
authorSathya Perla <sathyap@serverengines.com>
Fri, 5 Dec 2008 10:22:15 +0000 (15:52 +0530)
committerGreg Kroah-Hartman <gregkh@suse.de>
Tue, 6 Jan 2009 21:52:16 +0000 (13:52 -0800)
This patch cleans up the way to check if there is enough space in the rx_q
while posting buffers.

Signed-off-by: Sathya Perla <sathyap@serverengines.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/staging/benet/be_int.c

index b05e27d0a7ae2ac2c9c93eaca2231a149a802518..cba95d09a8b6faf20d348e55424d3fe656c49913 100644 (file)
@@ -623,25 +623,14 @@ void be_post_eth_rx_buffs(struct be_net_object *pnob)
         */
        INIT_LIST_HEAD(&rxbl);
 
-       for (num_bufs = 0; num_bufs < max_bufs; ++num_bufs) {
+       for (num_bufs = 0; num_bufs < max_bufs &&
+               !pnob->rx_page_info[pnob->rx_pg_info_hd].page; ++num_bufs) {
 
                rxbp = &pnob->eth_rx_bufs[num_bufs];
                pg_hd = pnob->rx_pg_info_hd;
                rx_page_info = &pnob->rx_page_info[pg_hd];
 
                if (!page) {
-                       /*
-                        * before we allocate a page make sure that we
-                        * have space in the RX queue to post the buffer.
-                        * We check for two vacant slots since with
-                        * 2K frags, we will need two slots.
-                        */
-                       if ((pnob->rx_ctxt[(pnob->rx_q_hd + num_bufs) &
-                                          (pnob->rx_q_len - 1)] != NULL)
-                           || (pnob->rx_ctxt[(pnob->rx_q_hd + num_bufs + 1) %
-                                             pnob->rx_q_len] != NULL)) {
-                               break;
-                       }
                        page = alloc_pages(alloc_flags, page_order);
                        if (unlikely(page == NULL)) {
                                adapter->be_stat.bes_ethrx_post_fail++;