struct ti_ohci *ohci;
struct video_card *video = NULL;
unsigned long flags;
- struct list_head *lh;
+ struct list_head *lh, *templh;
char buf[32];
int n;
/* find the corresponding video_cards */
spin_lock_irqsave(&dv1394_cards_lock, flags);
if(!list_empty(&dv1394_cards)) {
- list_for_each(lh, &dv1394_cards) {
+ list_for_each_safe(lh, templh, &dv1394_cards) {
video = list_entry(lh, struct video_card, list);
if((video->id >> 2) == ohci->id)
dv1394_un_init(video);
printk(KERN_ERR fmt, ## args)
static char version[] __devinitdata =
- "$Rev: 801 $ Ben Collins <bcollins@debian.org>";
+ "$Rev: 806 $ Ben Collins <bcollins@debian.org>";
/* Our ieee1394 highlevel driver */
#define ETHER1394_DRIVER_NAME "ether1394"
unsigned char arp_data[2*(dev->addr_len+4)];
/* Copy the main data that we need */
- arp_ptr = memcpy (arp_data, arp_ptr + sizeof(struct arphdr), sizeof (arp_data));
+ memcpy (arp_data, arp_ptr + sizeof(struct arphdr), sizeof (arp_data));
/* Extend the buffer enough for our new header */
skb_put (skb, sizeof (struct eth1394_arp) -
#define PROCESS_MEMBER(ptr,val,len) \
memcpy (val, ptr, len); ptr += len
- arp_ptr += arp1394->hw_addr_len;
+ arp_ptr = arp_data + arp1394->hw_addr_len;
PROCESS_MEMBER (arp_ptr, &arp1394->sip, arp1394->ip_addr_len);
arp_ptr += arp1394->hw_addr_len;
PROCESS_MEMBER (arp_ptr, &arp1394->tip, arp1394->ip_addr_len);
spin_unlock_irqrestore (&priv->lock, flags);
#define PROCESS_MEMBER(ptr,val,len) \
- ptr = memcpy (ptr, val, len) + len
+ memcpy (ptr, val, len); ptr += len
PROCESS_MEMBER (arp_ptr, src_hw, dev->addr_len);
PROCESS_MEMBER (arp_ptr, &arp1394.sip, 4);
PROCESS_MEMBER (arp_ptr, dest_hw, dev->addr_len);