[Regression 2.6.37->2.6.38] f_phonet with SOCK_DGRAM

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear All,

I have discovered a regression in f_phonet. I am trying to send/receive
data through a socket of SOCK_DGRAM type.

I enclose a program which I use to send and receive the data.

First, I configure the phonet using the tools found here:

git://git.gitorious.org/meego-cellular/phonet-utils.git.

On the host (PC):

$ phonet -a 0x10 -i usbpn0
$ pnroute add 0x6c usbpn0
$ pnroute add 0x10 usbpn0
$ ifconfig usbpn0 up

On the device (ARM):

$ phonet -a 0x6c -i upnlink0
$ pnroute add 0x10 upnlink0

Second, I run the attached pnxmit:

On the device:

$ pnxmit -a 0x6c -r

On the host:

$ pnxmit -a 0x10 -s 0x6c

I then expect to see "Received 263 bytes from 10ab" on the device.
But it does not happen. Instead, in net/phonet/af_phonet.c
the packets are dropped in phonet_rcv, so they never reach any socket.
An incoming packet fails to satisfy the condition

if ((len > skb->len) || pskb_trim(skb, len))

because len has an unnaturally large value.

There is a commit f5a45325 introduced between 2.6.37 and 2.6.38, which
deals with struct sk_buff fragments. If I revert it using the patch
sent together with this cover letter (on current kernels the f5a45325
does not revert cleanly), there is no unnaturally large len problem
and the data are delivered to the socket waiting for it.

I also tried the very 2.6.37 and 2.6.38 kernels; on 2.6.38 the mentioned
patch does revert cleanly and it helps the same.

On the other hand, if I run the test using dummy_{hcd|udc} on an ARM machine,
so that it is both the sender and the receiver, this works OK even on
recent kernels.

@Remi: Could you look into the problem? Or is it a problem at all?

Anyone?


Andrzej Pietrasiewicz (2):
  Revert "f_phonet: avoid pskb_pull(), fix OOPS with CONFIG_HIGHMEM"
  pnxmit.c, test program

 drivers/usb/gadget/f_phonet.c |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux