Bug 28552 - ipheth stopped working between 2.6.35.9 and 2.6.36.2
Summary: ipheth stopped working between 2.6.35.9 and 2.6.36.2
Status: RESOLVED INSUFFICIENT_DATA
Alias: None
Product: Drivers
Classification: Unclassified
Component: Network (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: drivers_network@kernel-bugs.osdl.org
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-02-07 19:24 UTC by Joe Breuer
Modified: 2013-12-11 12:19 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.36.2
Subsystem:
Regression: Yes
Bisected commit-id:


Attachments
tcpdump of iPhone tethering attempt in 2.6.36.2 (34.66 KB, text/plain)
2011-02-07 19:24 UTC, Joe Breuer
Details
tcpdump of iPhone tethering connecting correctly in 2.6.35.9 (11.66 KB, text/plain)
2011-02-07 19:25 UTC, Joe Breuer
Details

Description Joe Breuer 2011-02-07 19:24:27 UTC
Created attachment 46762 [details]
tcpdump of iPhone tethering attempt in 2.6.36.2

Overview:

    Internet connection via iPhone 3G ("USB tethering") no longer works in 2.6.36.2; it appears that the packets coming from the iPhone are misinterpreted.

Steps to Reproduce:

    1) Connect iPhone to computer via USB cable

    2) Put iPhone in "tethering" mode

Actual Results:

    The DHCP client times out trying to obtain a lease.

Expected Results: 

    The computer gets IP information via DHCP, and is able to share the iPhone's internet connection.

Build Date & Platform: 

    2.6.36.2 on x86_64
    iPhone 3G Firmware 3.1.3

Additional Builds and Platforms:

    2.6.35.9 on x86_64 (same hardware) works as expected.

Additional Information:

    Attached are 2 tcpdump logs:
      2.6.36.2-tcpdump.txt in the failure case
      2.6.35.9-tcpdump.txt, working connection setup

Comparing the DHCP reply at 19:53:36.581403 (works) to 19:05:05.744666 (fails) it appears that 2.6.36.2 misinterprets the data coming from the iPhone, so that the failing packet is not recognized as an IP packet / valid DHCP reply.

The change to ipheth.c itself between 2.6.36 and 2.6.35 seems trivial:
http://lxr.free-electrons.com/diff/drivers/net/usb/ipheth.c?v=2.6.35;diffval=2.6.36;diffvar=v

Therefore I'd at first tried copying 2.6.35's ipheth.c into my 2.6.36 tree and rebuilding this driver; it appears to fail the same as vanilla 2.6.36 does [sorry, no logs - I can repeat this if required].

This suggests that the failure happens somewhere in either the networking or USB layer, not the ipheth.c driver itself.

I'm happy to perform any additional testing required.
Comment 1 Joe Breuer 2011-02-07 19:25:45 UTC
Created attachment 46772 [details]
tcpdump of iPhone tethering connecting correctly in 2.6.35.9
Comment 2 Andrew Morton 2011-02-07 23:07:26 UTC
(switched to email.  Please respond via emailed reply-to-all, not via the
bugzilla web interface).

On Mon, 7 Feb 2011 19:24:29 GMT
bugzilla-daemon@bugzilla.kernel.org wrote:

> https://bugzilla.kernel.org/show_bug.cgi?id=28552
> 
>            Summary: ipheth stopped working between 2.6.35.9 and 2.6.36.2
>            Product: Drivers
>            Version: 2.5
>     Kernel Version: 2.6.36.2
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Network
>         AssignedTo: drivers_network@kernel-bugs.osdl.org
>         ReportedBy: linux-kernel@jmbreuer.net
>         Regression: Yes
> 
> 
> Created an attachment (id=46762)
>  --> (https://bugzilla.kernel.org/attachment.cgi?id=46762)
> tcpdump of iPhone tethering attempt in 2.6.36.2
> 
> Overview:
> 
>     Internet connection via iPhone 3G ("USB tethering") no longer works in
> 2.6.36.2; it appears that the packets coming from the iPhone are
> misinterpreted.
> 
> Steps to Reproduce:
> 
>     1) Connect iPhone to computer via USB cable
> 
>     2) Put iPhone in "tethering" mode
> 
> Actual Results:
> 
>     The DHCP client times out trying to obtain a lease.
> 
> Expected Results: 
> 
>     The computer gets IP information via DHCP, and is able to share the
> iPhone's internet connection.
> 
> Build Date & Platform: 
> 
>     2.6.36.2 on x86_64
>     iPhone 3G Firmware 3.1.3
> 
> Additional Builds and Platforms:
> 
>     2.6.35.9 on x86_64 (same hardware) works as expected.
> 
> Additional Information:
> 
>     Attached are 2 tcpdump logs:
>       2.6.36.2-tcpdump.txt in the failure case
>       2.6.35.9-tcpdump.txt, working connection setup
> 
> Comparing the DHCP reply at 19:53:36.581403 (works) to 19:05:05.744666
> (fails)
> it appears that 2.6.36.2 misinterprets the data coming from the iPhone, so
> that
> the failing packet is not recognized as an IP packet / valid DHCP reply.
> 
> The change to ipheth.c itself between 2.6.36 and 2.6.35 seems trivial:
>
> http://lxr.free-electrons.com/diff/drivers/net/usb/ipheth.c?v=2.6.35;diffval=2.6.36;diffvar=v
> 
> Therefore I'd at first tried copying 2.6.35's ipheth.c into my 2.6.36 tree
> and
> rebuilding this driver; it appears to fail the same as vanilla 2.6.36 does
> [sorry, no logs - I can repeat this if required].
> 
> This suggests that the failure happens somewhere in either the networking or
> USB layer, not the ipheth.c driver itself.
> 
> I'm happy to perform any additional testing required.
>
Comment 3 Alan 2012-08-15 22:08:36 UTC
Is this still seen with modern (3.2+) kernels ?

Note You need to log in before you can comment on or make changes to this bug.