for (i = 0; (i < BOND_MAX_ARP_TARGETS) && targets[i]; i++) { 
for (i = 0; (i < BOND_MAX_ARP_TARGETS); i++) { if (!targets[i]) continue; 
static void bond_arp_send_all(struct bonding *bond, struct slave *slave){	int i, vlan_id, rv;	u32 *targets = bond->params.arp_targets;	struct vlan_entry *vlan, *vlan_next;	struct net_device *vlan_dev;	struct flowi fl;	struct rtable *rt;	for (i = 0; (i < BOND_MAX_ARP_TARGETS) && targets[i]; i++) {		dprintk("basa: target %x\n", targets[i]);		if (list_empty(&bond->vlan_list)) {			dprintk("basa: empty vlan: arp_send\n");			bond_arp_send(slave->dev, ARPOP_REQUEST, targets[i],				      bond->master_ip, 0);			continue;		}		/*		 * If VLANs are configured, we do a route lookup to		 * determine which VLAN interface would be used, so we		 * can tag the ARP with the proper VLAN tag.		 */		memset(&fl, 0, sizeof(fl));		fl.fl4_dst = targets[i];		fl.fl4_tos = RTO_ONLINK;		rv = ip_route_output_key(&rt, &fl);		if (rv) {			if (net_ratelimit()) {				printk(KERN_WARNING DRV_NAME			     ": %s: no route to arp_ip_target %u.%u.%u.%u\n",				       bond->dev->name, NIPQUAD(fl.fl4_dst));			}			continue;		}		/*		 * This target is not on a VLAN		 */		if (rt->u.dst.dev == bond->dev) {			ip_rt_put(rt);			dprintk("basa: rtdev == bond->dev: arp_send\n");			bond_arp_send(slave->dev, ARPOP_REQUEST, targets[i],				      bond->master_ip, 0);			continue;		}		vlan_id = 0;		list_for_each_entry_safe(vlan, vlan_next, &bond->vlan_list,					 vlan_list) {			vlan_dev = bond->vlgrp->vlan_devices[vlan->vlan_id];			if (vlan_dev == rt->u.dst.dev) {				vlan_id = vlan->vlan_id;				dprintk("basa: vlan match on %s %d\n",				       vlan_dev->name, vlan_id);				break;			}		}		if (vlan_id) {			ip_rt_put(rt);			bond_arp_send(slave->dev, ARPOP_REQUEST, targets[i],				      vlan->vlan_ip, vlan_id);			continue;		}		if (net_ratelimit()) {			printk(KERN_WARNING DRV_NAME	       ": %s: no path to arp_ip_target %u.%u.%u.%u via rt.dev %s\n",			       bond->dev->name, NIPQUAD(fl.fl4_dst),			       rt->u.dst.dev ? rt->u.dst.dev->name : "NULL");		}		ip_rt_put(rt);	}}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/6b780567223524cac86c745aeac425521cf37490/bond_main.c/buggy/drivers/net/bonding/bond_main.c