This reverts commit f5a45325284ec10a907b96052ebf2168e7166b5c.

To be applied on current kernels, but only for the purpose of
debugging the regression mentioned in the subject.

There is a small conflict during the revert, but this patch
fixes it.

Signed-off-by: Andrzej Pietrasiewicz <andrze...@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.p...@samsung.com>
---
 drivers/usb/gadget/f_phonet.c |   15 +++++----------
 1 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/drivers/usb/gadget/f_phonet.c b/drivers/usb/gadget/f_phonet.c
index b21ab55..e86763f 100644
--- a/drivers/usb/gadget/f_phonet.c
+++ b/drivers/usb/gadget/f_phonet.c
@@ -336,19 +336,14 @@ static void pn_rx_complete(struct usb_ep *ep, struct 
usb_request *req)
 
                if (unlikely(!skb))
                        break;
-
-               if (skb->len == 0) { /* First fragment */
-                       skb->protocol = htons(ETH_P_PHONET);
-                       skb_reset_mac_header(skb);
-                       /* Can't use pskb_pull() on page in IRQ */
-                       memcpy(skb_put(skb, 1), page_address(page), 1);
-               }
-
-               skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page,
-                               skb->len <= 1, req->actual, PAGE_SIZE);
+               skb_add_rx_frag(skb, skb_shinfo(skb)->nr_frags, page, 0,
+                               req->actual, PAGE_SIZE);
                page = NULL;
 
                if (req->actual < req->length) { /* Last fragment */
+                       skb->protocol = htons(ETH_P_PHONET);
+                       skb_reset_mac_header(skb);
+                       pskb_pull(skb, 1);
                        skb->dev = dev;
                        dev->stats.rx_packets++;
                        dev->stats.rx_bytes += skb->len;
-- 
1.7.0.4

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

Reply via email to