* [PATCH 3/12] NET/ROM statistics fix
From: Ralf Baechle DL5RB @ 2005-09-11 22:18 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
Calling an incoming NET/ROM-encapsulated IP packet an error if the interface
isn't up is probably a bit over the top, so count it as dropped instead of
an error.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
net/netrom/nr_dev.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: net-2.6.git/net/netrom/nr_dev.c
===================================================================
--- net-2.6.git.orig/net/netrom/nr_dev.c
+++ net-2.6.git/net/netrom/nr_dev.c
@@ -47,7 +47,7 @@ int nr_rx_ip(struct sk_buff *skb, struct
struct net_device_stats *stats = netdev_priv(dev);
if (!netif_running(dev)) {
- stats->rx_errors++;
+ stats->rx_dropped++;
return 0;
}
^ permalink raw reply
* [PATCH 4/12] Remove useless tests
From: Ralf Baechle DL5RB @ 2005-09-11 22:18 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
Remove error tests that have already been performed by the caller.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
net/ax25/af_ax25.c | 6 +-----
net/netrom/af_netrom.c | 4 +---
net/rose/af_rose.c | 4 +---
3 files changed, 3 insertions(+), 11 deletions(-)
Index: linux-cvs/net/netrom/af_netrom.c
===================================================================
--- linux-cvs.orig/net/netrom/af_netrom.c
+++ linux-cvs/net/netrom/af_netrom.c
@@ -1187,9 +1187,7 @@ static int nr_ioctl(struct socket *sock,
}
case SIOCGSTAMP:
- ret = -EINVAL;
- if (sk != NULL)
- ret = sock_get_timestamp(sk, argp);
+ ret = sock_get_timestamp(sk, argp);
release_sock(sk);
return ret;
Index: linux-cvs/net/ax25/af_ax25.c
===================================================================
--- linux-cvs.orig/net/ax25/af_ax25.c
+++ linux-cvs/net/ax25/af_ax25.c
@@ -1700,11 +1700,7 @@ static int ax25_ioctl(struct socket *soc
}
case SIOCGSTAMP:
- if (sk != NULL) {
- res = sock_get_timestamp(sk, argp);
- break;
- }
- res = -EINVAL;
+ res = sock_get_timestamp(sk, argp);
break;
case SIOCAX25ADDUID: /* Add a uid to the uid/call map table */
Index: linux-cvs/net/rose/af_rose.c
===================================================================
--- linux-cvs.orig/net/rose/af_rose.c
+++ linux-cvs/net/rose/af_rose.c
@@ -1256,9 +1256,7 @@ static int rose_ioctl(struct socket *soc
}
case SIOCGSTAMP:
- if (sk != NULL)
- return sock_get_timestamp(sk, (struct timeval __user *)argp);
- return -EINVAL;
+ return sock_get_timestamp(sk, (struct timeval __user *)argp);
case SIOCGIFADDR:
case SIOCSIFADDR:
^ permalink raw reply
* [PATCH 5/12] Add descriptions to constants
From: Ralf Baechle DL5RB @ 2005-09-11 22:19 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
Comment the names used for the AX.25 state machine.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
include/net/ax25.h | 10 +++++-----
1 files changed, 5 insertions(+), 5 deletions(-)
Index: linux-cvs/include/net/ax25.h
===================================================================
--- linux-cvs.orig/include/net/ax25.h
+++ linux-cvs/include/net/ax25.h
@@ -97,11 +97,11 @@
/* Define Link State constants. */
enum {
- AX25_STATE_0,
- AX25_STATE_1,
- AX25_STATE_2,
- AX25_STATE_3,
- AX25_STATE_4
+ AX25_STATE_0, /* Listening */
+ AX25_STATE_1, /* SABM sent */
+ AX25_STATE_2, /* DISC sent */
+ AX25_STATE_3, /* Established */
+ AX25_STATE_4 /* Recovery */
};
#define AX25_MODULUS 8 /* Standard AX.25 modulus */
^ permalink raw reply
* [PATCH 6/12] Whitespace formatting changes
From: Ralf Baechle DL5RB @ 2005-09-11 22:19 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
Small formatting changes.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
net/ax25/af_ax25.c | 2 +-
net/rose/af_rose.c | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)
Index: linux-cvs/net/ax25/af_ax25.c
===================================================================
--- linux-cvs.orig/net/ax25/af_ax25.c
+++ linux-cvs/net/ax25/af_ax25.c
@@ -1695,7 +1695,7 @@ static int ax25_ioctl(struct socket *soc
/* These two are safe on a single CPU system as only user tasks fiddle here */
if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL)
amount = skb->len;
- res = put_user(amount, (int __user *)argp);
+ res = put_user(amount, (int __user *) argp);
break;
}
Index: linux-cvs/net/rose/af_rose.c
===================================================================
--- linux-cvs.orig/net/rose/af_rose.c
+++ linux-cvs/net/rose/af_rose.c
@@ -1243,7 +1243,7 @@ static int rose_ioctl(struct socket *soc
amount = sk->sk_sndbuf - atomic_read(&sk->sk_wmem_alloc);
if (amount < 0)
amount = 0;
- return put_user(amount, (unsigned int __user *)argp);
+ return put_user(amount, (unsigned int __user *) argp);
}
case TIOCINQ: {
@@ -1252,11 +1252,11 @@ static int rose_ioctl(struct socket *soc
/* These two are safe on a single CPU system as only user tasks fiddle here */
if ((skb = skb_peek(&sk->sk_receive_queue)) != NULL)
amount = skb->len;
- return put_user(amount, (unsigned int __user *)argp);
+ return put_user(amount, (unsigned int __user *) argp);
}
case SIOCGSTAMP:
- return sock_get_timestamp(sk, (struct timeval __user *)argp);
+ return sock_get_timestamp(sk, (struct timeval __user *) argp);
case SIOCGIFADDR:
case SIOCSIFADDR:
^ permalink raw reply
* [PATCH 7/12] Reformat ax25_proto_ops initialization
From: Ralf Baechle DL5RB @ 2005-09-11 22:19 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
Reformat iniitalization of ax25_proto_ops.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
net/ax25/af_ax25.c | 36 ++++++++++++++++++------------------
1 files changed, 18 insertions(+), 18 deletions(-)
Index: net-2.6.git/net/ax25/af_ax25.c
===================================================================
--- net-2.6.git.orig/net/ax25/af_ax25.c
+++ net-2.6.git/net/ax25/af_ax25.c
@@ -1947,24 +1947,24 @@ static struct net_proto_family ax25_fami
};
static struct proto_ops ax25_proto_ops = {
- .family = PF_AX25,
- .owner = THIS_MODULE,
- .release = ax25_release,
- .bind = ax25_bind,
- .connect = ax25_connect,
- .socketpair = sock_no_socketpair,
- .accept = ax25_accept,
- .getname = ax25_getname,
- .poll = datagram_poll,
- .ioctl = ax25_ioctl,
- .listen = ax25_listen,
- .shutdown = ax25_shutdown,
- .setsockopt = ax25_setsockopt,
- .getsockopt = ax25_getsockopt,
- .sendmsg = ax25_sendmsg,
- .recvmsg = ax25_recvmsg,
- .mmap = sock_no_mmap,
- .sendpage = sock_no_sendpage,
+ .family = PF_AX25,
+ .owner = THIS_MODULE,
+ .release = ax25_release,
+ .bind = ax25_bind,
+ .connect = ax25_connect,
+ .socketpair = sock_no_socketpair,
+ .accept = ax25_accept,
+ .getname = ax25_getname,
+ .poll = datagram_poll,
+ .ioctl = ax25_ioctl,
+ .listen = ax25_listen,
+ .shutdown = ax25_shutdown,
+ .setsockopt = ax25_setsockopt,
+ .getsockopt = ax25_getsockopt,
+ .sendmsg = ax25_sendmsg,
+ .recvmsg = ax25_recvmsg,
+ .mmap = sock_no_mmap,
+ .sendpage = sock_no_sendpage,
};
/*
^ permalink raw reply
* [PATCH 8/12] NET/ROM has no txqueue
From: Ralf Baechle DL5RB @ 2005-09-11 22:19 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
NET/ROM uses virtual interfaces so setting a queue length is wrong.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
net/netrom/nr_dev.c | 1 -
1 files changed, 1 deletion(-)
Index: net-2.6.git/net/netrom/nr_dev.c
===================================================================
--- net-2.6.git.orig/net/netrom/nr_dev.c
+++ net-2.6.git/net/netrom/nr_dev.c
@@ -194,7 +194,6 @@ void nr_setup(struct net_device *dev)
dev->hard_header_len = NR_NETWORK_LEN + NR_TRANSPORT_LEN;
dev->addr_len = AX25_ADDR_LEN;
dev->type = ARPHRD_NETROM;
- dev->tx_queue_len = 40;
dev->rebuild_header = nr_rebuild_header;
dev->set_mac_address = nr_set_mac_address;
^ permalink raw reply
* [PATCH 9/12] NET/ROM has no ARP
From: Ralf Baechle DL5RB @ 2005-09-11 22:19 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
ARP over NET/ROM does not exist so it's obviously not implemented on any
NET/ROM stack, so the NET/ROM interfaces really should default to IFF_NOARP.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
net/netrom/nr_dev.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: linux-cvs/net/netrom/nr_dev.c
===================================================================
--- linux-cvs.orig/net/netrom/nr_dev.c
+++ linux-cvs/net/netrom/nr_dev.c
@@ -191,7 +191,7 @@ void nr_setup(struct net_device *dev)
dev->set_mac_address = nr_set_mac_address;
/* New-style flags. */
- dev->flags = 0;
+ dev->flags = IFF_NOARP;
dev->get_stats = nr_get_stats;
}
^ permalink raw reply
* [PATCH 10/12] ROSE has no ARP
From: Ralf Baechle DL5RB @ 2005-09-11 22:19 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
ARP over ROSE does not exist so it's obviously not implemented on any ROSE
stack, so the ROSE interfaces really should default to IFF_NOARP.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
net/rose/rose_dev.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)
Index: linux-cvs/net/rose/rose_dev.c
===================================================================
--- linux-cvs.orig/net/rose/rose_dev.c
+++ linux-cvs/net/rose/rose_dev.c
@@ -149,6 +149,6 @@ void rose_setup(struct net_device *dev)
dev->set_mac_address = rose_set_mac_address;
/* New-style flags. */
- dev->flags = 0;
+ dev->flags = IFF_NOARP;
dev->get_stats = rose_get_stats;
}
^ permalink raw reply
* [PATCH 12/12] Introduct stuct nr_private
From: Ralf Baechle DL5RB @ 2005-09-11 22:19 UTC (permalink / raw)
To: David S. Miller, netdev, linux-hams
NET/ROM's virtual interfaces don't have a proper private data structure
yet. Create struct nr_private and put the statistics there.
Signed-off-by: Ralf Baechle DL5RB <ralf@linux-mips.org>
include/net/netrom.h | 5 +++++
net/netrom/af_netrom.c | 3 +--
net/netrom/nr_dev.c | 11 ++++++-----
3 files changed, 12 insertions(+), 7 deletions(-)
Index: net-2.6.git/include/net/netrom.h
===================================================================
--- net-2.6.git.orig/include/net/netrom.h
+++ net-2.6.git/include/net/netrom.h
@@ -6,6 +6,7 @@
#ifndef _NETROM_H
#define _NETROM_H
+
#include <linux/netrom.h>
#include <linux/list.h>
#include <net/sock.h>
@@ -58,6 +59,10 @@ enum {
#define NR_MAX_WINDOW_SIZE 127 /* Maximum Window Allowable - 127 */
#define NR_MAX_PACKET_SIZE 236 /* Maximum Packet Length - 236 */
+struct nr_private {
+ struct net_device_stats stats;
+};
+
struct nr_sock {
struct sock sock;
ax25_address user_addr, source_addr, dest_addr;
Index: net-2.6.git/net/netrom/af_netrom.c
===================================================================
--- net-2.6.git.orig/net/netrom/af_netrom.c
+++ net-2.6.git/net/netrom/af_netrom.c
@@ -1392,8 +1392,7 @@ static int __init nr_proto_init(void)
struct net_device *dev;
sprintf(name, "nr%d", i);
- dev = alloc_netdev(sizeof(struct net_device_stats), name,
- nr_setup);
+ dev = alloc_netdev(sizeof(struct nr_private), name, nr_setup);
if (!dev) {
printk(KERN_ERR "NET/ROM: nr_proto_init - unable to allocate device structure\n");
goto fail;
Index: net-2.6.git/net/netrom/nr_dev.c
===================================================================
--- net-2.6.git.orig/net/netrom/nr_dev.c
+++ net-2.6.git/net/netrom/nr_dev.c
@@ -153,10 +153,9 @@ static int nr_close(struct net_device *d
static int nr_xmit(struct sk_buff *skb, struct net_device *dev)
{
- struct net_device_stats *stats = netdev_priv(dev);
- unsigned int len;
-
- len = skb->len;
+ struct nr_private *nr = netdev_priv(dev);
+ struct net_device_stats *stats = &nr->stats;
+ unsigned int len = skb->len;
if (!nr_route_frame(skb, NULL)) {
kfree_skb(skb);
@@ -172,7 +171,9 @@ static int nr_xmit(struct sk_buff *skb,
static struct net_device_stats *nr_get_stats(struct net_device *dev)
{
- return netdev_priv(dev);
+ struct nr_private *nr = netdev_priv(dev);
+
+ return &nr->stats;
}
void nr_setup(struct net_device *dev)
^ permalink raw reply
* Re: Very strange Marvell/Yukon Gigabit NIC networking problems
From: Steve Kieu @ 2005-09-12 0:02 UTC (permalink / raw)
To: Daniel Drake; +Cc: Stephen Hemminger, linux-kernel, Netdev List
In-Reply-To: <43244C33.1050502@gentoo.org>
> Steve, maybe you could test it out? I have attached
> it to this Gentoo bug:
>
> http://bugs.gentoo.org/100258
Have tested it and it does *not* solve the problem for
me.
Besides lots of other problem with 2.6.13 for me, like
modem device not work, lots of extra modules not
compiled (ov511 ; unionfs etc..) so even it works I
still need to revet back to 2.6.12.
Cheers,
S.KIEU
Send instant messages to your online friends http://au.messenger.yahoo.com
^ permalink raw reply
* no-body beats them freethink
From: britt allery @ 2005-09-12 5:16 UTC (permalink / raw)
To: Brenton Schreiber; +Cc: leonard, schmidt
Kasi:
http://uk.geocities.com/medvociferategood/?Fendi_IWC_rpjpdbvaf
mamma mia, it's a game we play Bye bye doesn't mean forever
frobbing filyon eldec F07 documentwindow currentwindow
Are you a ghost?Or are you alive?Would you be here for me (ooh, ooh)
ImaginationOr are you for real?Just give me a sign (sign)
^ permalink raw reply
* [PATCH 2.6.13] pcnet32: set min ring size to 4
From: Hubert WS Lin @ 2005-09-12 7:09 UTC (permalink / raw)
To: netdev; +Cc: linux-kernel, fubar, donf, jklewis
[-- Attachment #1: Type: text/plain, Size: 414 bytes --]
Hi,
Don Fry reminded me that the pcnet32_loopback_test() asssumes the ring
size is no less than 4. The minimum ring size was changed to 4 in
pcnet32_set_ringparam() to allow the loopback test to work unchanged.
Changelog:
- Set minimum ring size to 4 to allow loopback test to work unchanged
- Moved variable init_block to first field in struct pcnet32_private
Signed-off-by: Hubert WS Lin <wslin@tw.ibm.com>
[-- Attachment #2: pcnet32-min-ring-size.diff --]
[-- Type: text/x-patch, Size: 2419 bytes --]
--- a/drivers/net/pcnet32.c 2005-09-12 14:24:40.000000000 +0800
+++ b/drivers/net/pcnet32.c 2005-09-12 14:39:11.000000000 +0800
@@ -22,8 +22,8 @@
*************************************************************************/
#define DRV_NAME "pcnet32"
-#define DRV_VERSION "1.31"
-#define DRV_RELDATE "02.Sep.2005"
+#define DRV_VERSION "1.31a"
+#define DRV_RELDATE "12.Sep.2005"
#define PFX DRV_NAME ": "
static const char *version =
@@ -258,6 +258,8 @@ static int homepna[MAX_UNITS];
* v1.30i 28 Jun 2004 Don Fry change to use module_param.
* v1.30j 29 Apr 2005 Don Fry fix skb/map leak with loopback test.
* v1.31 02 Sep 2005 Hubert WS Lin <wslin@tw.ibm.c0m> added set_ringparam().
+ * v1.31a 12 Sep 2005 Hubert WS Lin <wslin@tw.ibm.c0m> set min ring size to 4
+ * to allow loopback test to work unchanged.
*/
@@ -335,14 +337,14 @@ struct pcnet32_access {
};
/*
- * The first three fields of pcnet32_private are read by the ethernet device
- * so we allocate the structure should be allocated by pci_alloc_consistent().
+ * The first field of pcnet32_private is read by the ethernet device
+ * so the structure should be allocated using pci_alloc_consistent().
*/
struct pcnet32_private {
+ struct pcnet32_init_block init_block;
/* The Tx and Rx ring entries must be aligned on 16-byte boundaries in 32bit mode. */
struct pcnet32_rx_head *rx_ring;
struct pcnet32_tx_head *tx_ring;
- struct pcnet32_init_block init_block;
dma_addr_t dma_addr; /* DMA address of beginning of this
object, returned by
pci_alloc_consistent */
@@ -648,7 +650,10 @@ static int pcnet32_set_ringparam(struct
lp->tx_ring_size = min(ering->tx_pending, (unsigned int) TX_MAX_RING_SIZE);
lp->rx_ring_size = min(ering->rx_pending, (unsigned int) RX_MAX_RING_SIZE);
- for (i = 0; i <= PCNET32_LOG_MAX_TX_BUFFERS; i++) {
+ /* set the minimum ring size to 4, to allow the loopback test to work
+ * unchanged.
+ */
+ for (i = 2; i <= PCNET32_LOG_MAX_TX_BUFFERS; i++) {
if (lp->tx_ring_size <= (1 << i))
break;
}
@@ -656,7 +661,7 @@ static int pcnet32_set_ringparam(struct
lp->tx_mod_mask = lp->tx_ring_size - 1;
lp->tx_len_bits = (i << 12);
- for (i = 0; i <= PCNET32_LOG_MAX_RX_BUFFERS; i++) {
+ for (i = 2; i <= PCNET32_LOG_MAX_RX_BUFFERS; i++) {
if (lp->rx_ring_size <= (1 << i))
break;
}
^ permalink raw reply
* pm_register should die
From: Pavel Machek @ 2005-09-12 9:34 UTC (permalink / raw)
To: kernel list, Andrew Morton, Linus Torvalds
Cc: vojtech, dwmw2, netdev, benjamin_kong, dagb, jgarzik, davidm,
twoller, alan, mm, scott, jsimmons
Hi!
pm_register has been obsoleted by driver model, and it was deprecated
quite long time ago. There are only 13 users left.
Attached is a patch that makes pm_register config-option, so that we
don't get the warnings on sane systems. Pretty please, remove usage of
pm_register from your subsystem.
IRDA has no usefull MAINTAINER entry; it would be nice if that could
be fixed. Alan is best contact I could find for ad1848... does someone
care about that driver, anyway? nm256_audio is written by
anonymous. Wonderfull...
Okay, it seems to me only users that matter are mtdcore, 3c509 and
maybe h3600_ts_input. After those are fixed, it should be okay to just
config it out/remove pm_register completely.
Pavel
./drivers/input/touchscreen/h3600_ts_input.c: ts->pm_dev = pm_register(PM_ILLUMINATION_DEV, PM_SYS_LIGHT,
./drivers/mtd/mtdcore.c: mtd_pm_dev = pm_register(PM_UNKNOWN_DEV, 0, mtd_pm_callback);
./drivers/net/irda/ali-ircc.c: pmdev = pm_register(PM_SYS_DEV, PM_SYS_IRDA, ali_ircc_pmproc);
./drivers/net/irda/nsc-ircc.c: pmdev = pm_register(PM_SYS_DEV, PM_SYS_IRDA, nsc_ircc_pmproc);
./drivers/net/3c509.c: lp->pmdev = pm_register(PM_ISA_DEV, card_idx, el3_pm_callback);
./drivers/serial/68328serial.c: serial_pm[i] = pm_register(PM_SYS_DEV, PM_SYS_COM, serial_pm_callback);
./sound/oss/cs4281/cs4281m.c: pmdev = cs_pm_register(PM_PCI_DEV, PM_PCI_ID(pcidev), cs4281_pm_callback);
./sound/oss/cs4281/cs4281pm-24.c:#define cs_pm_register(a, b, c) pm_register((a), (b), (c));
./sound/oss/ad1848.c: devc->pmdev = pm_register(PM_ISA_DEV, my_dev, ad1848_pm_callback);
./sound/oss/cs46xx.c: pmdev = cs_pm_register(PM_PCI_DEV, PM_PCI_ID(pci_dev), cs46xx_pm_callback);
./sound/oss/maestro.c: pmdev = pm_register(PM_PCI_DEV, PM_PCI_ID(pcidev),
./sound/oss/nm256_audio.c: pmdev = pm_register(PM_PCI_DEV, PM_PCI_ID(pcidev), handle_pm_event);
./sound/oss/opl3sa2.c: opl3sa2_state[card].pmdev = pm_register(PM_ISA_DEV, card, opl3sa2_pm_callback);
Make pm_register stuff dependend on CONFIG_OLD_PM, so it can be removed.
---
commit fff4171d1a447da54f757e2ff0bd9739d995680c
tree 75b53f93650101814da506bfc435e8f415233672
parent 6c7cd9958aa0edfb01e04bac7fc670e485a1600f
author <pavel@amd.(none)> Sun, 11 Sep 2005 23:04:34 +0200
committer <pavel@amd.(none)> Sun, 11 Sep 2005 23:04:34 +0200
arch/i386/kernel/apm.c | 6 ++++++
include/linux/pm.h | 14 ++++++++++----
kernel/power/pm.c | 3 ++-
3 files changed, 18 insertions(+), 5 deletions(-)
diff --git a/arch/i386/kernel/apm.c b/arch/i386/kernel/apm.c
--- a/arch/i386/kernel/apm.c
+++ b/arch/i386/kernel/apm.c
@@ -1180,6 +1180,7 @@ static int suspend(int vetoable)
int err;
struct apm_user *as;
+#ifdef CONFIG_OLD_PM
if (pm_send_all(PM_SUSPEND, (void *)3)) {
/* Vetoed */
if (vetoable) {
@@ -1192,6 +1193,7 @@ static int suspend(int vetoable)
}
printk(KERN_CRIT "apm: suspend was vetoed, but suspending anyway.\n");
}
+#endif
device_suspend(PMSG_SUSPEND);
local_irq_disable();
@@ -1234,7 +1236,9 @@ static int suspend(int vetoable)
device_power_up();
local_irq_enable();
device_resume();
+#ifdef CONFIG_OLD_PM
pm_send_all(PM_RESUME, (void *)0);
+#endif
queue_event(APM_NORMAL_RESUME, NULL);
out:
spin_lock(&user_list_lock);
@@ -1355,7 +1359,9 @@ static void check_events(void)
set_time();
write_sequnlock_irq(&xtime_lock);
device_resume();
+#ifdef CONFIG_OLD_PM
pm_send_all(PM_RESUME, (void *)0);
+#endif
queue_event(event, NULL);
}
ignore_normal_resume = 0;
diff --git a/include/linux/pm.h b/include/linux/pm.h
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -27,6 +27,15 @@
#include <linux/list.h>
#include <asm/atomic.h>
+#ifdef CONFIG_PM
+extern int pm_active;
+
+#define PM_IS_ACTIVE() (pm_active != 0)
+#else
+#define PM_IS_ACTIVE() (0)
+#endif
+
+#ifdef CONFIG_OLD_PM
/*
* Power management requests... these are passed to pm_send_all() and friends.
*
@@ -96,10 +105,6 @@ struct pm_dev
#ifdef CONFIG_PM
-extern int pm_active;
-
-#define PM_IS_ACTIVE() (pm_active != 0)
-
/*
* Register a device with power management
*/
@@ -145,6 +150,7 @@ static inline int pm_send_all(pm_request
/* Functions above this comment are list-based old-style power
* managment. Please avoid using them. */
+#endif
/*
* Callbacks for platform drivers to implement.
diff --git a/kernel/power/pm.c b/kernel/power/pm.c
--- a/kernel/power/pm.c
+++ b/kernel/power/pm.c
@@ -27,6 +27,7 @@
int pm_active;
+#ifdef CONFIG_OLD_PM
/*
* Locking notes:
* pm_devs_lock can be a semaphore providing pm ops are not called
@@ -261,4 +262,4 @@ EXPORT_SYMBOL(pm_unregister_all);
EXPORT_SYMBOL(pm_send_all);
EXPORT_SYMBOL(pm_active);
-
+#endif
--
if you have sharp zaurus hardware you don't need... you know my address
^ permalink raw reply
* Re: pm_register should die
From: Andrew Morton @ 2005-09-12 9:41 UTC (permalink / raw)
To: Pavel Machek
Cc: linux-kernel, akpm, torvalds, vojtech, dwmw2, netdev,
benjamin_kong, dagb, jgarzik, davidm, twoller, alan, mm, scott,
jsimmons
In-Reply-To: <20050912093456.GA29205@elf.ucw.cz>
Pavel Machek <pavel@ucw.cz> wrote:
>
> +#ifdef CONFIG_OLD_PM
> if (pm_send_all(PM_SUSPEND, (void *)3)) {
Can we not do this without ifdefs?
#define pm_send_all(foo, bar) 0
?
^ permalink raw reply
* Re: pm_register should die
From: Pavel Machek @ 2005-09-12 9:53 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-kernel, akpm, torvalds, vojtech, dwmw2, netdev,
benjamin_kong, dagb, jgarzik, davidm, twoller, alan, mm, scott,
jsimmons
In-Reply-To: <20050912024145.3c4298ec.akpm@osdl.org>
Hi!
> > +#ifdef CONFIG_OLD_PM
> > if (pm_send_all(PM_SUSPEND, (void *)3)) {
>
> Can we not do this without ifdefs?
>
> #define pm_send_all(foo, bar) 0
Okay, we probably can, but the ifdefs make very nice/easy markers
"this is going away". I'd prefer to actually delete all the code
inside those ifdefs...
I agree this patch can be improved... I hope I can get people to fix
those 13 occurences and be able to just drop everything in #ifdef
_OLD_PM.
Pavel
--
if you have sharp zaurus hardware you don't need... you know my address
^ permalink raw reply
* Re: pm_register should die
From: Pavel Machek @ 2005-09-12 9:55 UTC (permalink / raw)
To: Andrew Morton
Cc: linux-kernel, akpm, torvalds, vojtech, dwmw2, netdev,
benjamin_kong, dagb, jgarzik, davidm, twoller, alan, mm, scott,
jsimmons
In-Reply-To: <20050912095323.GD27583@elf.ucw.cz>
Hi!
> > > +#ifdef CONFIG_OLD_PM
> > > if (pm_send_all(PM_SUSPEND, (void *)3)) {
> >
> > Can we not do this without ifdefs?
> >
> > #define pm_send_all(foo, bar) 0
>
> Okay, we probably can, but the ifdefs make very nice/easy markers
> "this is going away". I'd prefer to actually delete all the code
> inside those ifdefs...
>
> I agree this patch can be improved... I hope I can get people to fix
> those 13 occurences and be able to just drop everything in #ifdef
> _OLD_PM.
There's another reason: they are ifdef-ed out so that you don't see
"obsolete function called" warning. Breaking the function and hiding
the warning at same time would seem like a wrong thing to do. If
someone does pm_send_all in his code, we want him to see the warning.
Pavel
--
if you have sharp zaurus hardware you don't need... you know my address
^ permalink raw reply
* Re: pm_register should die
From: Andrew Morton @ 2005-09-12 10:03 UTC (permalink / raw)
To: Pavel Machek
Cc: linux-kernel, torvalds, vojtech, dwmw2, netdev, benjamin_kong,
dagb, jgarzik, davidm, twoller, alan, mm, scott, jsimmons
In-Reply-To: <20050912095532.GA27763@elf.ucw.cz>
Pavel Machek <pavel@suse.cz> wrote:
>
> Hi!
>
> > > > +#ifdef CONFIG_OLD_PM
> > > > if (pm_send_all(PM_SUSPEND, (void *)3)) {
> > >
> > > Can we not do this without ifdefs?
> > >
> > > #define pm_send_all(foo, bar) 0
> >
> > Okay, we probably can, but the ifdefs make very nice/easy markers
> > "this is going away". I'd prefer to actually delete all the code
> > inside those ifdefs...
> >
> > I agree this patch can be improved... I hope I can get people to fix
> > those 13 occurences and be able to just drop everything in #ifdef
> > _OLD_PM.
>
> There's another reason: they are ifdef-ed out so that you don't see
> "obsolete function called" warning. Breaking the function and hiding
> the warning at same time would seem like a wrong thing to do. If
> someone does pm_send_all in his code, we want him to see the warning.
>
Fair enough.
^ permalink raw reply
* Re: skge: reboot on sysfs resource0 access
From: Bernd Schubert @ 2005-09-12 11:01 UTC (permalink / raw)
To: Ben Greear; +Cc: Stephen Hemminger, netdev
In-Reply-To: <4321D2C0.10800@candelatech.com>
> > Sorry, this is not a driver bug.
>
> Does that mean if you do this:
>
> find /sys -name "*" -print|xargs grep foo
>
> that the system will crash?
I would also guess it would happen, though I won't try that now.
>
> I certainly would consider that a bug, and even if that somehow works, I'd
> think that at the least you should be able to read every file in the file
> system without crashing the system!
>
> Do you at least have to be root to cause this crash?
Yes, the resource0 file has rw access to root only.
Cheers,
Bernd
^ permalink raw reply
* Re: 2.6.13-mm3
From: Reuben Farrelly @ 2005-09-12 13:15 UTC (permalink / raw)
To: Andrew Morton; +Cc: linux-kernel, netdev
In-Reply-To: <20050912024350.60e89eb1.akpm@osdl.org>
Hi,
On 12/09/2005 9:43 p.m., Andrew Morton wrote:
> ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.13/2.6.13-mm3/
>
> (temp copy at http://www.zip.com.au/~akpm/linux/patches/stuff/2.6.13-mm3.gz)
>
> - perfctr was dropped. Mikael has ceased development and recommends that
> the focus be upon perfmon. See
> http://sourceforge.net/mailarchive/forum.php?thread_id=8102899&forum_id=2237
>
> - There are several performance tuning patches here which need careful
> attention and testing. (Does anyone do performance testing any more?)
>
> - An update to the anticipatory scheduler to fix a performance problem
> where processes do a single read then exit, in the presence of competing
> I/O acticity.
>
> - The size of the page allocator per-cpu magazines has been increased
>
> - The page allocator has been changed to use higher-order allocations
> when batch-loading the per-cpu magazines. This is intended to give
> improved cache colouring effects however it might have the downside of
> causing extra page allocator fragmentation.
>
> - The page allocator's per-cpu magazines have had their lower threshold
> set to zero. And we can't remember why it ever had a lower threshold.
>
> - Dropped all the virtualisation preparatory patches. Will later pick these
> up from a git tree which chrisw is running.
>
> - There are still quite a few patches here for 2.6.14 (30-50, perhaps).
-mm2 and -mm3 seem good, at least compile and boot up :)
However for both, I'm seeing this when making modules_install:
if [ -r System.map -a -x /sbin/depmod ]; then /sbin/depmod -ae -F System.map
2.6.13-mm3; fi
WARNING: /lib/modules/2.6.13-mm3/kernel/net/ipv6/netfilter/ip6t_NFQUEUE.ko
needs unknown symbol ip6t_unregister_target
WARNING: /lib/modules/2.6.13-mm3/kernel/net/ipv6/netfilter/ip6t_NFQUEUE.ko
needs unknown symbol ip6t_register_target
[root@tornado linux-2.6]#
Seems to be caused by this option in .config set to 'm':
<M> Netfilter NFQUEUE over NFNETLINK interface
Symbol: NETFILTER_NETLINK_QUEUE [=m]
Prompt: Netfilter NFQUEUE over NFNETLINK interface
Defined at net/netfilter/Kconfig:7
Full .config up at http://www.reub.net/kernel/2.6.13-mm3-config.
I suspect there is a dependency here on ip6_tables, which I am not currently
compiling in or building as a module?
reuben
^ permalink raw reply
* [patch 2.6.13 1/3] 3c59x: bounds checking for hw_checksums
From: John W. Linville @ 2005-09-12 14:48 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: akpm, jgarzik
In-Reply-To: <09122005104852.31469@bilbo.tuxdriver.com>
Add bounds checking to usage of hw_checksums module parameter array.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/3c59x.c | 15 +++++++++------
1 files changed, 9 insertions(+), 6 deletions(-)
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -1536,9 +1536,11 @@ static int __devinit vortex_probe1(struc
dev->hard_start_xmit = boomerang_start_xmit;
/* Actually, it still should work with iommu. */
dev->features |= NETIF_F_SG;
- if (((hw_checksums[card_idx] == -1) && (vp->drv_flags & HAS_HWCKSM)) ||
- (hw_checksums[card_idx] == 1)) {
- dev->features |= NETIF_F_IP_CSUM;
+ if ((card_idx < MAX_UNITS) &&
+ (((hw_checksums[card_idx] == -1) &&
+ (vp->drv_flags & HAS_HWCKSM)) ||
+ (hw_checksums[card_idx] == 1))) {
+ dev->features |= NETIF_F_IP_CSUM;
}
} else {
dev->hard_start_xmit = vortex_start_xmit;
@@ -2811,9 +2813,10 @@ vortex_close(struct net_device *dev)
}
#if DO_ZEROCOPY
- if ( vp->rx_csumhits &&
- ((vp->drv_flags & HAS_HWCKSM) == 0) &&
- (hw_checksums[vp->card_idx] == -1)) {
+ if (vp->rx_csumhits &&
+ ((vp->drv_flags & HAS_HWCKSM) == 0) &&
+ ((vp->card_idx >= MAX_UNITS) ||
+ (hw_checksums[vp->card_idx] == -1))) {
printk(KERN_WARNING "%s supports hardware checksums, and we're not using them!\n", dev->name);
}
#endif
^ permalink raw reply
* [patch 2.6.13 0/3] 3c59x misc fixes
From: John W. Linville @ 2005-09-12 14:48 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: akpm, jgarzik
A collection of patches for the 3c59x driver:
-- Add bounds checking for hw_checksums array
-- Use cleaner method for array initialization
-- Fix some typos in the module param descriptions
Patches to follow...
^ permalink raw reply
* [patch 2.6.13] 3c59x: enable use of memory-mapped PCI I/O
From: John W. Linville @ 2005-09-12 14:48 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: akpm, jgarzik
In-Reply-To: <20050906161330.0138f5a2.akpm@osdl.org>
Add capability for 3c59x driver to use memory-mapped PCI I/O
resources. This may improve performance for those devices so
equipped. This will be the default behaviour for IS_CYCLONE
and IS_TORNADO devices. Additionally, it can be enabled/disabled
individually for up to MAX_UNITS number of devices via the use_mmio
module option or for all units via the global_use_mmio option. The
use_mmio option overrides the global_use_mmio option for those
devices specified.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/3c59x.c | 29 ++++++++++++++++++++++++++---
1 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -908,9 +908,11 @@ static int full_duplex[MAX_UNITS] = {-1,
static int hw_checksums[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
static int flow_ctrl[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
static int enable_wol[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
+static int use_mmio[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
static int global_options = -1;
static int global_full_duplex = -1;
static int global_enable_wol = -1;
+static int global_use_mmio = -1;
/* #define dev_alloc_skb dev_alloc_skb_debug */
@@ -935,6 +937,8 @@ module_param(compaq_ioaddr, int, 0);
module_param(compaq_irq, int, 0);
module_param(compaq_device_id, int, 0);
module_param(watchdog, int, 0);
+module_param(global_use_mmio, int, 0);
+module_param_array(use_mmio, int, NULL, 0);
MODULE_PARM_DESC(debug, "3c59x debug level (0-6)");
MODULE_PARM_DESC(options, "3c59x: Bits 0-3: media type, bit 4: bus mastering, bit 9: full duplex");
MODULE_PARM_DESC(global_options, "3c59x: same as options, but applies to all NICs if options is unset");
@@ -950,6 +954,8 @@ MODULE_PARM_DESC(compaq_ioaddr, "3c59x P
MODULE_PARM_DESC(compaq_irq, "3c59x PCI IRQ number (Compaq BIOS problem workaround)");
MODULE_PARM_DESC(compaq_device_id, "3c59x PCI device ID (Compaq BIOS problem workaround)");
MODULE_PARM_DESC(watchdog, "3c59x transmit timeout in milliseconds");
+MODULE_PARM_DESC(global_use_mmio, "3c59x: same as use_mmio, but applies to all NICs if options is unset");
+MODULE_PARM_DESC(use_mmio, "3c59x: use memory-mapped PCI I/O resource (0-1)");
#ifdef CONFIG_NET_POLL_CONTROLLER
static void poll_vortex(struct net_device *dev)
@@ -1109,15 +1115,32 @@ static int __init vortex_eisa_init (void
static int __devinit vortex_init_one (struct pci_dev *pdev,
const struct pci_device_id *ent)
{
- int rc;
+ int rc, unit, pci_bar;
+ struct vortex_chip_info *vci;
+ void __iomem *ioaddr;
/* wake up and enable device */
rc = pci_enable_device (pdev);
if (rc < 0)
goto out;
- rc = vortex_probe1 (&pdev->dev, pci_iomap(pdev, 0, 0),
- pdev->irq, ent->driver_data, vortex_cards_found);
+ unit = vortex_cards_found;
+
+ if (global_use_mmio < 0 && (unit >= MAX_UNITS || use_mmio[unit] < 0)) {
+ /* Determine the default if the user didn't override us */
+ vci = &vortex_info_tbl[ent->driver_data];
+ pci_bar = vci->drv_flags & (IS_CYCLONE | IS_TORNADO) ? 1 : 0;
+ } else if (unit < MAX_UNITS && use_mmio[unit] >= 0)
+ pci_bar = use_mmio[unit] ? 1 : 0;
+ else
+ pci_bar = global_use_mmio ? 1 : 0;
+
+ ioaddr = pci_iomap(pdev, pci_bar, 0);
+ if (!ioaddr) /* If mapping fails, fall-back to BAR 0... */
+ ioaddr = pci_iomap(pdev, 0, 0);
+
+ rc = vortex_probe1(&pdev->dev, ioaddr, pdev->irq,
+ ent->driver_data, unit);
if (rc < 0) {
pci_disable_device (pdev);
goto out;
^ permalink raw reply
* [patch 2.6.13 0/16] implement ETHTOOL_GPERMADDR support for a number of drivers
From: John W. Linville @ 2005-09-12 14:48 UTC (permalink / raw)
To: linux-kernel, netdev
Cc: jgarzik, Jon_Wetzel, john.ronciak, ganesh.venkatesan, cramerj,
jesse.brandeburg, ayyappan.veeraiyan, mchan, davem, p_gortmaker,
tsbogend, romieu, shemminger, rl
A collection of patches which add support for ETHTOOL_GPERMADDR to
the following drivers: 3c59x, 8139cp, 8139too, b44, bnx2, e1000,
e100, forcedeth, ixgb, ne2k-pci, pcnet32, r8169, skge, sundance,
tg3, via-rhine.
I apologize for all the small patches, but I wanted to trim the cc:
lists appropriately for each driver.
^ permalink raw reply
* [patch 2.6.13 3/3] 3c59x: fix some grammar in module parameter descriptions
From: John W. Linville @ 2005-09-12 14:48 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: akpm, jgarzik
In-Reply-To: <09122005104853.31588@bilbo.tuxdriver.com>
Correct several (apparently cut & paste) grammatical typos in module
parameter descriptions. They seem to have originated as copies of
the description for "global_options".
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/3c59x.c | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -943,18 +943,18 @@ MODULE_PARM_DESC(debug, "3c59x debug lev
MODULE_PARM_DESC(options, "3c59x: Bits 0-3: media type, bit 4: bus mastering, bit 9: full duplex");
MODULE_PARM_DESC(global_options, "3c59x: same as options, but applies to all NICs if options is unset");
MODULE_PARM_DESC(full_duplex, "3c59x full duplex setting(s) (1)");
-MODULE_PARM_DESC(global_full_duplex, "3c59x: same as full_duplex, but applies to all NICs if options is unset");
+MODULE_PARM_DESC(global_full_duplex, "3c59x: same as full_duplex, but applies to all NICs if full_duplex is unset");
MODULE_PARM_DESC(hw_checksums, "3c59x Hardware checksum checking by adapter(s) (0-1)");
MODULE_PARM_DESC(flow_ctrl, "3c59x 802.3x flow control usage (PAUSE only) (0-1)");
MODULE_PARM_DESC(enable_wol, "3c59x: Turn on Wake-on-LAN for adapter(s) (0-1)");
-MODULE_PARM_DESC(global_enable_wol, "3c59x: same as enable_wol, but applies to all NICs if options is unset");
+MODULE_PARM_DESC(global_enable_wol, "3c59x: same as enable_wol, but applies to all NICs if enable_wol is unset");
MODULE_PARM_DESC(rx_copybreak, "3c59x copy breakpoint for copy-only-tiny-frames");
MODULE_PARM_DESC(max_interrupt_work, "3c59x maximum events handled per interrupt");
MODULE_PARM_DESC(compaq_ioaddr, "3c59x PCI I/O base address (Compaq BIOS problem workaround)");
MODULE_PARM_DESC(compaq_irq, "3c59x PCI IRQ number (Compaq BIOS problem workaround)");
MODULE_PARM_DESC(compaq_device_id, "3c59x PCI device ID (Compaq BIOS problem workaround)");
MODULE_PARM_DESC(watchdog, "3c59x transmit timeout in milliseconds");
-MODULE_PARM_DESC(global_use_mmio, "3c59x: same as use_mmio, but applies to all NICs if options is unset");
+MODULE_PARM_DESC(global_use_mmio, "3c59x: same as use_mmio, but applies to all NICs if use_mmio is unset");
MODULE_PARM_DESC(use_mmio, "3c59x: use memory-mapped PCI I/O resource (0-1)");
#ifdef CONFIG_NET_POLL_CONTROLLER
^ permalink raw reply
* [patch 2.6.13 2/3] 3c59x: cleanup init of module parameter arrays
From: John W. Linville @ 2005-09-12 14:48 UTC (permalink / raw)
To: linux-kernel, netdev; +Cc: akpm, jgarzik
In-Reply-To: <09122005104852.31525@bilbo.tuxdriver.com>
Beautify the array initilizations for the module parameters.
Signed-off-by: John W. Linville <linville@tuxdriver.com>
---
drivers/net/3c59x.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/net/3c59x.c b/drivers/net/3c59x.c
--- a/drivers/net/3c59x.c
+++ b/drivers/net/3c59x.c
@@ -903,12 +903,12 @@ static void set_8021q_mode(struct net_de
/* This driver uses 'options' to pass the media type, full-duplex flag, etc. */
/* Option count limit only -- unlimited interfaces are supported. */
#define MAX_UNITS 8
-static int options[MAX_UNITS] = { -1, -1, -1, -1, -1, -1, -1, -1,};
-static int full_duplex[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
-static int hw_checksums[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
-static int flow_ctrl[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
-static int enable_wol[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
-static int use_mmio[MAX_UNITS] = {-1, -1, -1, -1, -1, -1, -1, -1};
+static int options[MAX_UNITS] = { [0 ... MAX_UNITS-1] = -1 };
+static int full_duplex[MAX_UNITS] = { [0 ... MAX_UNITS-1] = -1 };
+static int hw_checksums[MAX_UNITS] = { [0 ... MAX_UNITS-1] = -1 };
+static int flow_ctrl[MAX_UNITS] = { [0 ... MAX_UNITS-1] = -1 };
+static int enable_wol[MAX_UNITS] = { [0 ... MAX_UNITS-1] = -1 };
+static int use_mmio[MAX_UNITS] = { [0 ... MAX_UNITS-1] = -1 };
static int global_options = -1;
static int global_full_duplex = -1;
static int global_enable_wol = -1;
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox