Skip to content

Commit

Permalink
ipwireless: Preallocate received packet buffers with MRU size
Browse files Browse the repository at this point in the history
ipwireless: Preallocate received packet buffers with MRU size

Packets are assembled from link size (~300 bytes) up to PPP MRU
(1500 by default). Try to preallocate full size rather than
repeatedly advance buffer size by 256 bytes.

Signed-off-by: David Sterba <dsterba@suse.cz>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
David Sterba authored and Linus Torvalds committed Jul 28, 2008
1 parent 0f38c47 commit a013869
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 1 deletion.
3 changes: 2 additions & 1 deletion drivers/char/pcmcia/ipwireless/hardware.c
Original file line number Diff line number Diff line change
Expand Up @@ -567,7 +567,8 @@ static struct ipw_rx_packet *pool_allocate(struct ipw_hardware *hw,
spin_unlock_irqrestore(&hw->lock, flags);
list_del(&packet->queue);
} else {
static int min_capacity = 256;
const int min_capacity =
ipwireless_ppp_mru(hw->network + 2);
int new_capacity;

spin_unlock_irqrestore(&hw->lock, flags);
Expand Down
5 changes: 5 additions & 0 deletions drivers/char/pcmcia/ipwireless/network.c
Original file line number Diff line number Diff line change
Expand Up @@ -499,3 +499,8 @@ int ipwireless_ppp_unit_number(struct ipw_network *network)

return ret;
}

int ipwireless_ppp_mru(const struct ipw_network *network)
{
return network->mru;
}
1 change: 1 addition & 0 deletions drivers/char/pcmcia/ipwireless/network.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,5 +48,6 @@ void ipwireless_ppp_open(struct ipw_network *net);
void ipwireless_ppp_close(struct ipw_network *net);
int ipwireless_ppp_channel_index(struct ipw_network *net);
int ipwireless_ppp_unit_number(struct ipw_network *net);
int ipwireless_ppp_mru(const struct ipw_network *net);

#endif

0 comments on commit a013869

Please sign in to comment.