net: ppp_generic - fix regressions caused by IDR conversion
authorCyrill Gorcunov <gorcunov@openvz.org>
Tue, 13 Jan 2009 06:11:56 +0000 (22:11 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 13 Jan 2009 06:11:56 +0000 (22:11 -0800)
commit859975764fa61e927e7a69f46a55a4ba415785dd
tree15d351fa12c73bf5d74ecb223d798604a63e52b0
parenta6d0b91ae5dd01263530c96f9b29001cb1ed58b0
net: ppp_generic - fix regressions caused by IDR conversion

The commits:

7a95d267fb62cd6b80ef73be0592bbbe1dbd5df7
("net: ppp_generic - use idr technique instead of cardmaps")

ab5024ab23b78c86a0a1425defcdde48710fe449
("net: ppp_generic - use DEFINE_IDR for static initialization")

introduced usage of IDR functionality but broke userspace side.

Before this commits it was possible to allocate new ppp interface with
specified number. Now it fails with EINVAL.  Fix it by trying to
allocate interface with specified unit number and return EEXIST if
fail which allow pppd to ask us to allocate new unit number.

And fix messages on memory allocation fails - add details that it's
PPP module who is complaining.

Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ppp_generic.c