Reintroduce revisions 7641 to 7648.
svn path=/dists/trunk/linux-2.6/; revision=7657
This commit is contained in:
parent
78728fcbc2
commit
de74c6f31f
|
@ -23,7 +23,16 @@ linux-2.6 (2.6.18-4) UNRELEASED; urgency=low
|
|||
* arm/iop32x: Fix the interrupt of the 2nd Ethernet slot on N2100.
|
||||
* arm/iop32x: Allow USB and serial to co-exist on N2100.
|
||||
|
||||
-- Norbert Tretkowski <nobse@debian.org> Sat, 21 Oct 2006 18:52:12 +0200
|
||||
[ maximilian attems ]
|
||||
* Add netpoll leak fix.
|
||||
* Add sky2 lookup patch for the Marvell 88E803X Yukon-FE chip.
|
||||
* Add upstream forcedeth swsusp support.
|
||||
* r8169: PCI ID for Corega Gigabit network card.
|
||||
* r8169: the MMIO region of the 8167 stands behin BAR#1.
|
||||
* r8169: Add upstream fix for infinite loop during hotplug.
|
||||
* Bump build-dependency on kernel-package to 10.063.
|
||||
|
||||
-- maximilian attems <maks@sternwelten.at> Wed, 25 Oct 2006 11:47:18 +0200
|
||||
|
||||
linux-2.6 (2.6.18-3) unstable; urgency=low
|
||||
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
From netdev-owner@vger.kernel.org Wed Oct 18 23:31:05 2006
|
||||
From: Stephen Hemminger <shemminger@osdl.org>
|
||||
|
||||
If netpoll uses up it's retries, it should drop the skb
|
||||
not leak memory.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
|
||||
---
|
||||
net/core/netpoll.c | 8 ++++----
|
||||
1 files changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
|
||||
index ead5920..c375fde 100644
|
||||
--- a/net/core/netpoll.c
|
||||
+++ b/net/core/netpoll.c
|
||||
@@ -273,10 +273,8 @@ static void netpoll_send_skb(struct netp
|
||||
int status;
|
||||
struct netpoll_info *npinfo;
|
||||
|
||||
- if (!np || !np->dev || !netif_running(np->dev)) {
|
||||
- __kfree_skb(skb);
|
||||
- return;
|
||||
- }
|
||||
+ if (!np || !np->dev || !netif_running(np->dev))
|
||||
+ goto free_skb;
|
||||
|
||||
npinfo = np->dev->npinfo;
|
||||
|
||||
@@ -314,6 +312,8 @@ static void netpoll_send_skb(struct netp
|
||||
netpoll_poll(np);
|
||||
udelay(50);
|
||||
} while (npinfo->tries > 0);
|
||||
+free_skb:
|
||||
+ __kfree_skb(skb);
|
||||
}
|
||||
|
||||
void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
|
||||
--
|
||||
1.4.2.3
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,36 @@
|
|||
From netdev-owner@vger.kernel.org Fri Oct 13 07:35:57 2006
|
||||
Date: Thu, 12 Oct 2006 22:30:46 +0200
|
||||
From: Francois Romieu <romieu@fr.zoreil.com>
|
||||
|
||||
Arnaud Patard:
|
||||
r8169: fix infinite loop during hotplug
|
||||
|
||||
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
|
||||
index 4c47c5b..c2c9a86 100644
|
||||
--- a/drivers/net/r8169.c
|
||||
+++ b/drivers/net/r8169.c
|
||||
@@ -2701,6 +2702,7 @@ static void rtl8169_down(struct net_devi
|
||||
struct rtl8169_private *tp = netdev_priv(dev);
|
||||
void __iomem *ioaddr = tp->mmio_addr;
|
||||
unsigned int poll_locked = 0;
|
||||
+ unsigned int intrmask;
|
||||
|
||||
rtl8169_delete_timer(dev);
|
||||
|
||||
@@ -2739,8 +2741,11 @@ core_down:
|
||||
* 2) dev->change_mtu
|
||||
* -> rtl8169_poll can not be issued again and re-enable the
|
||||
* interruptions. Let's simply issue the IRQ down sequence again.
|
||||
+ *
|
||||
+ * No loop if hotpluged or major error (0xffff).
|
||||
*/
|
||||
- if (RTL_R16(IntrMask))
|
||||
+ intrmask = RTL_R16(IntrMask);
|
||||
+ if (intrmask && (intrmask != 0xffff))
|
||||
goto core_down;
|
||||
|
||||
rtl8169_tx_clear(tp);
|
||||
--
|
||||
Ueimor
|
||||
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
From netdev-owner@vger.kernel.org Fri Sep 22 15:58:36 2006
|
||||
From: Francois Romieu <romieu@fr.zoreil.com>
|
||||
|
||||
r8169: the MMIO region of the 8167 stands behin BAR#1
|
||||
|
||||
|
||||
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
|
||||
index 805562b..93cd1f4 100644
|
||||
--- a/drivers/net/r8169.c
|
||||
+++ b/drivers/net/r8169.c
|
||||
@@ -210,7 +210,7 @@ static const struct {
|
||||
static struct pci_device_id rtl8169_pci_tbl[] = {
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8129), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8136), 0, 0, RTL_CFG_2 },
|
||||
- { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_1 },
|
||||
+ { PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8167), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8168), 0, 0, RTL_CFG_2 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 },
|
||||
|
||||
--
|
||||
Ueimor
|
||||
|
|
@ -0,0 +1,78 @@
|
|||
From netdev-owner@vger.kernel.org Mon Oct 23 10:15:13 2006
|
||||
From: Stephen Hemminger <shemminger@osdl.org>
|
||||
Subject: [PATCH] sky2: 88E803X transmit lockup
|
||||
|
||||
The reason sky2 driver was locking up on transmit on the Yukon-FE chipset
|
||||
is that it was misconfiguring the internal RAM buffer so the transmitter
|
||||
and receiver were sharing the same space.
|
||||
|
||||
The code assumed there was 16K of RAM on Yukon-FE (taken from vendor driver
|
||||
sk98lin which is even more f*cked up on this). Then it assigned based on that.
|
||||
The giveaway was that the registers would only hold 9bits so both RX/TX
|
||||
had 0..1ff for space. It is a wonder it worked at all!
|
||||
|
||||
This patch addresses this, and fixes an easily reproducible hang on Transmit.
|
||||
Only the Yukon-FE chip is Marvell 88E803X (10/100 only) are affected.
|
||||
|
||||
Signed-off-by: Stephen Hemminger <shemminger@osdl.org>
|
||||
|
||||
--- sky2.orig/drivers/net/sky2.c 2006-10-20 16:37:56.000000000 -0700
|
||||
+++ sky2/drivers/net/sky2.c 2006-10-20 16:38:16.000000000 -0700
|
||||
@@ -699,16 +699,10 @@
|
||||
|
||||
}
|
||||
|
||||
-/* Assign Ram Buffer allocation.
|
||||
- * start and end are in units of 4k bytes
|
||||
- * ram registers are in units of 64bit words
|
||||
- */
|
||||
-static void sky2_ramset(struct sky2_hw *hw, u16 q, u8 startk, u8 endk)
|
||||
+/* Assign Ram Buffer allocation in units of 64bit (8 bytes) */
|
||||
+static void sky2_ramset(struct sky2_hw *hw, u16 q, u32 start, u32 end)
|
||||
{
|
||||
- u32 start, end;
|
||||
-
|
||||
- start = startk * 4096/8;
|
||||
- end = (endk * 4096/8) - 1;
|
||||
+ pr_debug(PFX "q %d %#x %#x\n", q, start, end);
|
||||
|
||||
sky2_write8(hw, RB_ADDR(q, RB_CTRL), RB_RST_CLR);
|
||||
sky2_write32(hw, RB_ADDR(q, RB_START), start);
|
||||
@@ -717,7 +711,7 @@
|
||||
sky2_write32(hw, RB_ADDR(q, RB_RP), start);
|
||||
|
||||
if (q == Q_R1 || q == Q_R2) {
|
||||
- u32 space = (endk - startk) * 4096/8;
|
||||
+ u32 space = end - start + 1;
|
||||
u32 tp = space - space/4;
|
||||
|
||||
/* On receive queue's set the thresholds
|
||||
@@ -1199,19 +1193,16 @@
|
||||
|
||||
sky2_mac_init(hw, port);
|
||||
|
||||
- /* Determine available ram buffer space (in 4K blocks).
|
||||
- * Note: not sure about the FE setting below yet
|
||||
- */
|
||||
- if (hw->chip_id == CHIP_ID_YUKON_FE)
|
||||
- ramsize = 4;
|
||||
- else
|
||||
- ramsize = sky2_read8(hw, B2_E_0);
|
||||
+ /* Determine available ram buffer space in qwords. */
|
||||
+ ramsize = sky2_read8(hw, B2_E_0) * 4096/8;
|
||||
|
||||
- /* Give transmitter one third (rounded up) */
|
||||
- rxspace = ramsize - (ramsize + 2) / 3;
|
||||
+ if (ramsize > 6*1024/8)
|
||||
+ rxspace = ramsize - (ramsize + 2) / 3;
|
||||
+ else
|
||||
+ rxspace = ramsize / 2;
|
||||
|
||||
- sky2_ramset(hw, rxqaddr[port], 0, rxspace);
|
||||
- sky2_ramset(hw, txqaddr[port], rxspace, ramsize);
|
||||
+ sky2_ramset(hw, rxqaddr[port], 0, rxspace-1);
|
||||
+ sky2_ramset(hw, txqaddr[port], rxspace, ramsize-1);
|
||||
|
||||
/* Make sure SyncQ is disabled */
|
||||
sky2_write8(hw, RB_ADDR(port == 0 ? Q_XS1 : Q_XS2, RB_CTRL),
|
||||
|
|
@ -0,0 +1,66 @@
|
|||
|
||||
Francois Romieu:
|
||||
forcedeth: restore network after swsup/resume or ACPI S3
|
||||
|
||||
|
||||
diff --git a/drivers/net/forcedeth.c b/drivers/net/forcedeth.c
|
||||
index 35467e0..c41a886 100644
|
||||
--- a/drivers/net/forcedeth.c
|
||||
+++ b/drivers/net/forcedeth.c
|
||||
@@ -4603,6 +4603,47 @@ static void __devexit nv_remove(struct p
|
||||
pci_set_drvdata(pci_dev, NULL);
|
||||
}
|
||||
|
||||
+
|
||||
+static int nv_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||
+{
|
||||
+ struct net_device *dev = pci_get_drvdata(pdev);
|
||||
+ struct fe_priv *np = netdev_priv(dev);
|
||||
+ int rc = 0;
|
||||
+
|
||||
+ if (!netif_running(dev))
|
||||
+ goto out;
|
||||
+
|
||||
+ netif_device_detach(dev);
|
||||
+
|
||||
+ /* Gross. */
|
||||
+ rc = nv_close(dev);
|
||||
+
|
||||
+ pci_save_state(pdev);
|
||||
+ pci_enable_wake(pdev, pci_choose_state(pdev, state), np->wolenabled);
|
||||
+ pci_set_power_state(pdev, pci_choose_state(pdev, state));
|
||||
+out:
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
+static int nv_resume(struct pci_dev *pdev)
|
||||
+{
|
||||
+ struct net_device *dev = pci_get_drvdata(pdev);
|
||||
+ int rc = 0;
|
||||
+
|
||||
+ if (!netif_running(dev))
|
||||
+ goto out;
|
||||
+
|
||||
+ netif_device_attach(dev);
|
||||
+
|
||||
+ pci_set_power_state(pdev, PCI_D0);
|
||||
+ pci_restore_state(pdev);
|
||||
+ pci_enable_wake(pdev, PCI_D0, 0);
|
||||
+
|
||||
+ rc = nv_open(dev);
|
||||
+out:
|
||||
+ return rc;
|
||||
+}
|
||||
+
|
||||
static struct pci_device_id pci_tbl[] = {
|
||||
{ /* nForce Ethernet Controller */
|
||||
PCI_DEVICE(PCI_VENDOR_ID_NVIDIA, PCI_DEVICE_ID_NVIDIA_NVENET_1),
|
||||
@@ -4704,6 +4745,8 @@ static struct pci_driver driver = {
|
||||
.id_table = pci_tbl,
|
||||
.probe = nv_probe,
|
||||
.remove = __devexit_p(nv_remove),
|
||||
+ .suspend = nv_suspend,
|
||||
+ .resume = nv_resume,
|
||||
};
|
||||
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
|
||||
Andrew Morton:
|
||||
r8169: PCI ID for Corega Gigabit network card
|
||||
|
||||
|
||||
diff --git a/drivers/net/r8169.c b/drivers/net/r8169.c
|
||||
index 4c47c5b..c7309e9 100644
|
||||
--- a/drivers/net/r8169.c
|
||||
+++ b/drivers/net/r8169.c
|
||||
@@ -214,6 +214,7 @@ static struct pci_device_id rtl8169_pci_
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8168), 0, 0, RTL_CFG_2 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_REALTEK, 0x8169), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(PCI_VENDOR_ID_DLINK, 0x4300), 0, 0, RTL_CFG_0 },
|
||||
+ { PCI_DEVICE(0x1259, 0xc107), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_DEVICE(0x16ec, 0x0116), 0, 0, RTL_CFG_0 },
|
||||
{ PCI_VENDOR_ID_LINKSYS, 0x1032,
|
||||
PCI_ANY_ID, 0x0024, 0, 0, RTL_CFG_0 },
|
||||
|
|
@ -4,3 +4,9 @@
|
|||
+ bugfix/arm/n2100-serial-irq.patch
|
||||
+ bugfix/arm/n2100-eth1-irq.patch
|
||||
+ bugfix/sparc/bus-id-size.patch
|
||||
+ bugfix/net-netpoll.patch
|
||||
+ bugfix/net-sky2-lockup.patch
|
||||
+ features/net-forcedeth-swsusp.patch
|
||||
+ bugfix/net-r8169-mmio8167.patch
|
||||
+ features/net-r8169-pci_id-corega.patch
|
||||
+ bugfix/net-r8169-hotplug_loop.patch
|
||||
|
|
|
@ -4,5 +4,5 @@ Priority: optional
|
|||
Maintainer: Debian Kernel Team <debian-kernel@lists.debian.org>
|
||||
Uploaders: Andres Salomon <dilinger@debian.org>, Bastian Blank <waldi@debian.org>, Simon Horman <horms@debian.org>, Sven Luther <luther@debian.org>, Jonas Smedegaard <dr@jones.dk>, Norbert Tretkowski <nobse@debian.org>, Frederik Schüler <fs@debian.org>
|
||||
Standards-Version: 3.6.1.0
|
||||
Build-Depends: debhelper (>= 4.1.0), module-init-tools, dpkg-dev (>= 1.10.23), debianutils (>= 1.6), bzip2, sparc-utils [sparc], kernel-package (>= 10.054), python, python2.4-minimal
|
||||
Build-Depends: debhelper (>= 4.1.0), module-init-tools, dpkg-dev (>= 1.10.23), debianutils (>= 1.6), bzip2, sparc-utils [sparc], kernel-package (>= 10.063), python, python2.4-minimal
|
||||
Build-Depends-Indep: docbook-utils, gs, transfig, xmlto
|
||||
|
|
Loading…
Reference in New Issue