lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:	Tue, 16 Dec 2008 10:13:30 +0100
From:	Manfred Scherer <manfred.scherer.mhm@...nline.de>
To:	Sakari Ailus <sakari.ailus@....fi>
Cc:	akpm@...ux-foundation.org, mostrows@...il.com,
	netdev@...r.kernel.org, bugme-daemon@...zilla.kernel.org
Subject: Re: [Bugme-new] [Bug 11754] New: tlan network driver does not work

I've tested this patch with success.

here are my test scenarios:

load the pached module:

pc1:/lib/modules/2.6.27/kernel/drivers/net # rmmod tlan
pc1:/lib/modules/2.6.27/kernel/drivers/net # cp -p tlan.ko.2.6.27_sakari.ailus tlan.ko
pc1:/lib/modules/2.6.27/kernel/drivers/net # modprobe tlan

browser access to the DSL-modem:

pc1:/lib/modules/2.6.27/kernel/drivers/net # tcpdump -i eth1
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth1, link-type EN10MB (Ethernet), capture size 96 bytes
09:37:50.167945 arp who-has 192.168.1.1 tell 192.168.1.22
09:37:50.168179 arp reply 192.168.1.1 is-at 00:19:15:47:0e:11
09:37:50.168197 IP 192.168.1.22.avsecuremgmt > 192.168.1.1.http: S 3925686798:3925686798(0) win 5840 <sackOK,timestamp 91699898 0,mss 1460,nop,wscale 6>
09:37:50.168693 arp who-has 192.168.1.22 tell 192.168.1.1
09:37:50.168719 arp reply 192.168.1.22 is-at 00:08:c7:28:5a:96
09:37:50.169204 IP 192.168.1.1.http > 192.168.1.22.avsecuremgmt: S 0:0(0) ack 3925686799 win 49152 <mss 1400>
09:37:50.169344 IP 192.168.1.22.avsecuremgmt > 192.168.1.1.http: . ack 1 win 5840
09:37:50.169475 IP 192.168.1.22.avsecuremgmt > 192.168.1.1.http: P 1:364(363) ack 1 win 5840
09:37:50.169716 IP 192.168.1.1.http > 192.168.1.22.avsecuremgmt: . ack 1 win 49152
09:37:50.170227 IP 192.168.1.1.http > 192.168.1.22.avsecuremgmt: . 1:28(27) ack 364 win 49152
09:37:50.170292 IP 192.168.1.22.avsecuremgmt > 192.168.1.1.http: . ack 28 win 5840
09:37:50.170738 IP 192.168.1.1.http > 192.168.1.22.avsecuremgmt: . 28:398(370) ack 364 win 49152
09:37:50.170796 IP 192.168.1.22.avsecuremgmt > 192.168.1.1.http: . ack 398 win 6432
...


Access to the internet via ppoe does work also:

Dec 16 09:34:46 pc1 kernel: ThunderLAN driver v1.15
Dec 16 09:34:46 pc1 kernel: TLAN: eth1 irq=11, io=c400, Compaq Netelligent 10/100 TX PCI UTP, Rev. 16
Dec 16 09:34:46 pc1 kernel: TLAN: 1 device installed, PCI: 1  EISA: 0
Dec 16 09:34:57 pc1 kernel: ADDRCONF(NETDEV_UP): eth1: link is not ready
Dec 16 09:34:57 pc1 kernel: TLAN: eth1: Starting autonegotiation.
Dec 16 09:34:59 pc1 kernel: TLAN: eth1: Autonegotiation complete.
Dec 16 09:34:59 pc1 kernel: TLAN: eth1: Link active with AutoNegotiation enabled, at 100Mbps Full-Duplex
Dec 16 09:34:59 pc1 kernel: TLAN: Partner capability: 10BaseT-HD 10BaseT-FD 100baseTx-HD 100baseTx-FD<NULL>
Dec 16 09:34:59 pc1 kernel: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
Dec 16 09:35:10 pc1 kernel: eth1: no IPv6 routers present
Dec 16 09:35:22 pc1 kernel: device eth1 entered promiscuous mode
Dec 16 09:41:26 pc1 kernel: device eth1 left promiscuous mode
Dec 16 09:41:46 pc1 pppd[14895]: Plugin rp-pppoe.so loaded.
Dec 16 09:41:46 pc1 pppd[14895]: RP-PPPoE plugin version 3.3 compiled against pppd 2.4.2
Dec 16 09:41:46 pc1 pppd[14895]: Plugin passwordfd.so loaded.
Dec 16 09:41:46 pc1 pppd[14895]: pppd 2.4.2 started by root, uid 0
Dec 16 09:41:47 pc1 pppd[14895]: PPP session is 1299
Dec 16 09:41:47 pc1 pppd[14895]: Renamed interface ppp0 to dsl0
Dec 16 09:41:47 pc1 pppd[14895]: Using interface dsl0
Dec 16 09:41:47 pc1 pppd[14895]: Connect: dsl0 <--> eth1
Dec 16 09:41:47 pc1 pppd[14895]: Couldn't increase MTU to 1500
Dec 16 09:41:47 pc1 pppd[14895]: Couldn't increase MRU to 1500
Dec 16 09:41:47 pc1 pppd[14895]: PAP authentication succeeded
Dec 16 09:41:47 pc1 pppd[14895]: peer from calling number 00:90:1A:A0:BF:67 authorized
Dec 16 09:41:47 pc1 pppd[14895]: local  IP address 87.178.120.71
Dec 16 09:41:47 pc1 pppd[14895]: remote IP address 217.0.117.13
Dec 16 09:41:47 pc1 pppd[14895]: primary   DNS address 217.237.150.51
Dec 16 09:41:47 pc1 pppd[14895]: secondary DNS address 217.237.148.22
Dec 16 09:41:47 pc1 modify_resolvconf: Service pppd modified /etc/resolv.conf. See info block in this file
Dec 16 09:41:54 pc1 pppd[14895]: Script /etc/ppp/ip-up finished (pid 14919), status = 0x0

... an now I am online and send this email.

Manfred Scherer
____________________________________________________________________________

Am Dienstag, 16. Dezember 2008 00:40 schrieben Sie:
> The TLAN chip does not support tranmissions smaller than 64 bytes. Smaller
> transfers need to be padded up to that size. This was broken by commit id
> 41873e9aff0632d80c74380d58a89e8d420151bd.
> 
> <URL:http://bugzilla.kernel.org/show_bug.cgi?id=11754>
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@....fi>
> ---
>  drivers/net/tlan.c |   10 ++++++----
>  1 files changed, 6 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/net/tlan.c b/drivers/net/tlan.c
> index c41d687..cf8cdaf 100644
> --- a/drivers/net/tlan.c
> +++ b/drivers/net/tlan.c
> @@ -1098,6 +1098,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
>  	dma_addr_t	tail_list_phys;
>  	u8		*tail_buffer;
>  	unsigned long	flags;
> +	unsigned int    txlen;
>  
>  	if ( ! priv->phyOnline ) {
>  		TLAN_DBG( TLAN_DEBUG_TX, "TRANSMIT:  %s PHY is not ready\n",
> @@ -1108,6 +1109,7 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
>  
>  	if (skb_padto(skb, TLAN_MIN_FRAME_SIZE))
>  		return 0;
> +	txlen = max(skb->len, (unsigned int)TLAN_MIN_FRAME_SIZE);
>  
>  	tail_list = priv->txList + priv->txTail;
>  	tail_list_phys = priv->txListDMA + sizeof(TLanList) * priv->txTail;
> @@ -1125,16 +1127,16 @@ static int TLan_StartTx( struct sk_buff *skb, struct net_device *dev )
>  
>  	if ( bbuf ) {
>  		tail_buffer = priv->txBuffer + ( priv->txTail * TLAN_MAX_FRAME_SIZE );
> -		skb_copy_from_linear_data(skb, tail_buffer, skb->len);
> +		skb_copy_from_linear_data(skb, tail_buffer, txlen);
>  	} else {
>  		tail_list->buffer[0].address = pci_map_single(priv->pciDev,
> -							      skb->data, skb->len,
> +							      skb->data, txlen,
>  							      PCI_DMA_TODEVICE);
>  		TLan_StoreSKB(tail_list, skb);
>  	}
>  
> -	tail_list->frameSize = (u16) skb->len;
> -	tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) skb->len;
> +	tail_list->frameSize = (u16) txlen;
> +	tail_list->buffer[0].count = TLAN_LAST_BUFFER | (u32) txlen;
>  	tail_list->buffer[1].count = 0;
>  	tail_list->buffer[1].address = 0;
>  
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ