Your message dated Sun, 14 Sep 2008 22:08:17 +0100 with message-id <1221426497.2955.3.camel@hashbaz.i.decadent.org.uk> and subject line Re: Bug#481857: r6040-source: Descriptor pointer update broken on big-endian systems has caused the Debian Bug report #481857, regarding r6040-source: Descriptor pointer update broken on big-endian systems to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) -- 481857: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=481857 Debian Bug Tracking System Contact owner@bugs.debian.org with problems
--- Begin Message ---
- To: Debian Bug Tracking System <submit@bugs.debian.org>
- Subject: r6040-source: Descriptor pointer update broken on big-endian systems
- From: Ben Hutchings <ben@decadent.org.uk>
- Date: Mon, 19 May 2008 02:37:46 +0100
- Message-id: <20080519013746.31725.65981.reportbug@deadeye.i.decadent.org.uk>
Package: r6040-source Version: 0.17-2 Severity: important Tags: patch -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 This code in r6040.c is hilariously broken if cpu_to_le32() actually does byte-swap: /* TX and RX descriptor start Register */ tmp_addr = cpu_to_le32(lp->tx_insert_ptr); tmp_addr = virt_to_bus((volatile void *)tmp_addr); outw((u16) tmp_addr, ioaddr+0x2c); outw(tmp_addr >> 16, ioaddr+0x30); tmp_addr = cpu_to_le32(lp->rx_insert_ptr); tmp_addr = virt_to_bus((volatile void *)tmp_addr); outw((u16) tmp_addr, ioaddr+0x34); outw(tmp_addr >> 16, ioaddr+0x38); The byte-swapping should be the last thing done before writing to little-endian registers. The following might work: /* TX and RX descriptor start Register */ tmp_addr = virt_to_bus(lp->tx_insert_ptr); outw(cpu_to_le16(tmp_addr), ioaddr+0x2c); outw(cpu_to_le16(tmp_addr >> 16), ioaddr+0x30); tmp_addr = virt_to_bus(lp->rx_insert_ptr); outw(cpu_to_le16(tmp_addr), ioaddr+0x34); outw(cpu_to_le16(tmp_addr >> 16), ioaddr+0x38); Ben. - -- System Information: Debian Release: lenny/sid APT prefers unstable APT policy: (500, 'unstable'), (500, 'stable'), (100, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.24-1-686 (SMP w/1 CPU core) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.6 (GNU/Linux) iD8DBQFIMNnq79ZNCRIGYgcRAilcAJ94ewuRJjT6eh8D6HIQ2rafskCYdgCfW/Hh iqH56v4EQpxk+ug02ISE4nQ= =OWWy -----END PGP SIGNATURE-----
--- End Message ---
--- Begin Message ---
- To: Martin Michlmayr <tbm@cyrius.com>
- Cc: 481857-done@bugs.debian.org
- Subject: Re: Bug#481857: r6040-source: Descriptor pointer update broken on big-endian systems
- From: Ben Hutchings <ben@decadent.org.uk>
- Date: Sun, 14 Sep 2008 22:08:17 +0100
- Message-id: <1221426497.2955.3.camel@hashbaz.i.decadent.org.uk>
- In-reply-to: <20080914074632.GA5916@deprecation.cyrius.com>
- References: <20080519013746.31725.65981.reportbug@deadeye.i.decadent.org.uk> <20080914074632.GA5916@deprecation.cyrius.com>
On Sun, 2008-09-14 at 10:46 +0300, Martin Michlmayr wrote: > reassign 481857 linux-2.6 > thanks > > * Ben Hutchings <ben@decadent.org.uk> [2008-05-19 02:37]: > > Package: r6040-source > > Version: 0.17-2 > > This package no longer exists: "RoM; superseded by newest linux-source" > > Ben, do you know if this is fixed in 2.6.26? The driver in 2.6.26 looks quite different, but certainly doesn't include the erroneous byte-swapping. In fact no byte-swapping is necessary in the driver code since outw() takes care of that. Ben.Attachment: signature.asc
Description: This is a digitally signed message part
--- End Message ---