static struct qeth_buffer_pool_entry *qeth_find_free_buffer_pool_entry(
                                        struct qeth_card *card)
 {
-       struct list_head *plh;
        struct qeth_buffer_pool_entry *entry;
        int i, free;
 
        if (list_empty(&card->qdio.in_buf_pool.entry_list))
                return NULL;
 
-       list_for_each(plh, &card->qdio.in_buf_pool.entry_list) {
-               entry = list_entry(plh, struct qeth_buffer_pool_entry, list);
+       list_for_each_entry(entry, &card->qdio.in_buf_pool.entry_list, list) {
                free = 1;
                for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) {
                        if (page_count(entry->elements[i]) > 1) {
        }
 
        /* no free buffer in pool so take first one and swap pages */
-       entry = list_entry(card->qdio.in_buf_pool.entry_list.next,
-                       struct qeth_buffer_pool_entry, list);
+       entry = list_first_entry(&card->qdio.in_buf_pool.entry_list,
+                                struct qeth_buffer_pool_entry, list);
        for (i = 0; i < QETH_MAX_BUFFER_ELEMENTS(card); ++i) {
                if (page_count(entry->elements[i]) > 1) {
                        struct page *page = dev_alloc_page();