ipwireless: Preallocate received packet buffers with MRU size
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>
This commit is contained in:
Родитель
0f38c47a54
Коммит
a013869248
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче