mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 23:32:14 +00:00
sctp: shrink sctp_tsnmap some more by removing gabs array
The gabs array in the sctp_tsnmap structure is only used in one place, sctp_make_sack(). As such, carrying the array around in the sctp_tsnmap and thus directly in the sctp_association is rather pointless since most of the time it's just taking up space. Now, let sctp_make_sack create and populate it and then throw it away when it's done. Signed-off-by: Vlad Yasevich <vladislav.yasevich@hp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
8e1ee18c33
commit
02015180e2
3 changed files with 15 additions and 20 deletions
|
@ -335,10 +335,11 @@ void sctp_tsnmap_renege(struct sctp_tsnmap *map, __u32 tsn)
|
|||
}
|
||||
|
||||
/* How many gap ack blocks do we have recorded? */
|
||||
__u16 sctp_tsnmap_num_gabs(struct sctp_tsnmap *map)
|
||||
__u16 sctp_tsnmap_num_gabs(struct sctp_tsnmap *map,
|
||||
struct sctp_gap_ack_block *gabs)
|
||||
{
|
||||
struct sctp_tsnmap_iter iter;
|
||||
int gabs = 0;
|
||||
int ngaps = 0;
|
||||
|
||||
/* Refresh the gap ack information. */
|
||||
if (sctp_tsnmap_has_gap(map)) {
|
||||
|
@ -348,14 +349,14 @@ __u16 sctp_tsnmap_num_gabs(struct sctp_tsnmap *map)
|
|||
&start,
|
||||
&end)) {
|
||||
|
||||
map->gabs[gabs].start = htons(start);
|
||||
map->gabs[gabs].end = htons(end);
|
||||
gabs++;
|
||||
if (gabs >= SCTP_MAX_GABS)
|
||||
gabs[ngaps].start = htons(start);
|
||||
gabs[ngaps].end = htons(end);
|
||||
ngaps++;
|
||||
if (ngaps >= SCTP_MAX_GABS)
|
||||
break;
|
||||
}
|
||||
}
|
||||
return gabs;
|
||||
return ngaps;
|
||||
}
|
||||
|
||||
static int sctp_tsnmap_grow(struct sctp_tsnmap *map, u16 gap)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue