{
        struct pci_dev *pdev = adapter->pdev;
        struct vf_data_storage *vf_data = &adapter->vf_data[vf];
-       struct list_head *pos;
        struct vf_mac_filter *entry = NULL;
        int ret = 0;
 
        switch (info) {
        case E1000_VF_MAC_FILTER_CLR:
                /* remove all unicast MAC filters related to the current VF */
-               list_for_each(pos, &adapter->vf_macs.l) {
-                       entry = list_entry(pos, struct vf_mac_filter, l);
+               list_for_each_entry(entry, &adapter->vf_macs.l, l) {
                        if (entry->vf == vf) {
                                entry->vf = -1;
                                entry->free = true;
                break;
        case E1000_VF_MAC_FILTER_ADD:
                /* try to find empty slot in the list */
-               list_for_each(pos, &adapter->vf_macs.l) {
-                       entry = list_entry(pos, struct vf_mac_filter, l);
+               list_for_each_entry(entry, &adapter->vf_macs.l, l) {
                        if (entry->free)
                                break;
                }
 
                                int vf, int index, unsigned char *mac_addr)
 {
        struct vf_macvlans *entry;
-       struct list_head *pos;
        int retval = 0;
 
        if (index <= 1) {
-               list_for_each(pos, &adapter->vf_mvs.l) {
-                       entry = list_entry(pos, struct vf_macvlans, l);
+               list_for_each_entry(entry, &adapter->vf_mvs.l, l) {
                        if (entry->vf == vf) {
                                entry->vf = -1;
                                entry->free = true;
 
        entry = NULL;
 
-       list_for_each(pos, &adapter->vf_mvs.l) {
-               entry = list_entry(pos, struct vf_macvlans, l);
+       list_for_each_entry(entry, &adapter->vf_mvs.l, l) {
                if (entry->free)
                        break;
        }