From: Ling, X. <xia...@in...> - 2004-04-17 17:42:44
|
Ok, these are good patches, you can just check in them. > -----Original Message----- > From: Mark Haverkamp [mailto:ma...@os...]=20 > Sent: 2004=C4=EA4=D4=C217=C8=D5 1:41 > To: Guo, Min; Ling, Xiaofeng; tipc > Subject: mcast patches >=20 >=20 > Here are some patches for your consideration. =20 >=20 > The recvbcast.c patch allows tipc_bcast_stop access to=20 > bnode_outqueue_release. >=20 > The name_table.c patch fixed an occasional panic where the=20 > for loop could run off the end of the seq table. >=20 > the bcast.c patch moves prev_destnode outside the=20 > list_for_each so it isn't continually being zeroed out.=20 >=20 > Thanks, > Mark. >=20 > Index: recvbcast.c=20 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/tipc/source/unstable/net/tipc/recvbcast.c,v > retrieving revision 1.11 > diff -u -r1.11 recvbcast.c > --- recvbcast.c 16 Apr 2004 04:03:46 -0000 1.11 > +++ recvbcast.c 16 Apr 2004 17:34:33 -0000 > @@ -166,7 +166,7 @@ > * Input: ackno: the acked packet seqno > * Return: void > */ > -static void bnode_outqueue_release(int ackno) > +void bnode_outqueue_release(int ackno) > { > struct sk_buff *buf; > =09 > Index: name_table.c=20 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/tipc/source/unstable/net/tipc/name_table.c,v > retrieving revision 1.8 > diff -u -r1.8 name_table.c > --- name_table.c 16 Apr 2004 04:03:46 -0000 1.8 > +++ name_table.c 16 Apr 2004 17:34:33 -0000 > @@ -723,6 +723,9 @@ > =20 > if (high_seq < low_seq) > goto not_found;=20 > + > + if (high_seq >=3D seq->first_free) > + high_seq =3D seq->first_free -1; > =20 > spin_lock_bh(&seq->lock); > =20 > @@ -794,6 +797,9 @@ > high_seq =3D nameseq_find_insert_pos(seq,upper);=20 > if (high_seq < 0) > high_seq =3D high_seq < 0 ? ((~high_seq) -1): high_seq; > + > + if (high_seq >=3D seq->first_free) > + high_seq =3D seq->first_free -1; > =20 > if (high_seq < low_seq) > goto not_found;=20 > Index: bcast.c=20 > = =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > RCS file: /cvsroot/tipc/source/unstable/net/tipc/bcast.c,v > retrieving revision 1.14 > diff -u -r1.14 bcast.c > --- bcast.c 16 Apr 2004 04:03:46 -0000 1.14 > +++ bcast.c 16 Apr 2004 17:34:33 -0000 > @@ -427,8 +427,8 @@ > int i =3D 0,prev_destnode;=09 > struct mc_identity* mid; > =09 > + prev_destnode =3D 0; > list_for_each(pos,mc_head) { > - prev_destnode =3D 0; > mid =3D list_entry(pos,struct mc_identity,list); > if (mid !=3D NULL && (prev_destnode !=3D mid->node)){ > prev_destnode =3D mid->node; >=20 > --=20 > Mark Haverkamp <ma...@os...> >=20 >=20 |