Adam Belay [Sun, 21 Sep 2003 19:02:08 +0000 (19:02 +0000)]
[PNP] remove DMA 0 restrictions
The original argument for blocking DMA 0 was to avoid conflicts with
"memory refresh" but such configurations are only found on very old
8-bit systems that are likely not supported by the linux kernel.
This patch allows dma 0 to be assigned to PnP devices by default. If
for whatever reason dma 0 cannot be used, one can avoid allocating it
by setting the pnp_reserve_dma= kernel parameter.
Adam Belay [Sun, 21 Sep 2003 18:25:50 +0000 (18:25 +0000)]
[PNP] release card devices on probe failure
When a driver's probe routine fails, it may not release all of the
card devices it requested. This patch allows the pnp layer to ensure
that all devices claimed by the failing driver are released properly.
Adam Belay [Sun, 21 Sep 2003 17:55:37 +0000 (17:55 +0000)]
[PNPBIOS] compilation fix for pnpbios without proc support
Here's an updated patch that will correct the compile error when PROC
FS is disabled. It also introduces better proc error recovery and
moves the local proc functions to the local include file. Thanks to
Daniele Bellucci for finding the problem and contributing to this
patch.
Randy Dunlap [Sun, 21 Sep 2003 09:43:09 +0000 (02:43 -0700)]
[PATCH] floppy I/O error handling => Oops
bad_flp_intr() in floppy.c can cause an Oops if the I/O request is freed
but <errors> still points into the I/O request block. Get the error
count out of the request block before ending the IO.
Andrew Morton [Sun, 21 Sep 2003 08:42:54 +0000 (01:42 -0700)]
[PATCH] AS oops fix
From: Nick Piggin <piggin@cyberone.com.au>
If a request is merged with another, it sometimes has to be repositioned on
the rbtree - you just do a delete then an add. This is a quite uncommon
case though.
I changed the way adding works, so collisions must be handled by the caller
instead of being dumbly fixed by the add routine. Unfortunately the
uncommon callers weren't handling it properly.
Andrew Morton [Sun, 21 Sep 2003 08:42:46 +0000 (01:42 -0700)]
[PATCH] zoran driver documentation fix
From: Ronald Bultje <rbultje@ronald.bitfreak.net>
the zoran kernel driver is called 'zoran.o' in its CVS (historical thing, I
don't know why), and it's called zr36067.o in the kernel tree. The
documentation in the kernel tree refers to zoran.o, though, which is (in
the kernel tree) the driver for zr36120-based cards, rather than the driver
for zr360x7-based cards.
The attached patch fixes the documentation and makes it refer to
zr36067.o instead.
Andrew Morton [Sun, 21 Sep 2003 08:42:39 +0000 (01:42 -0700)]
[PATCH] Fix sem_lock deadlock
From: Anton Blanchard <anton@samba.org>
I saw a lockup where 2 cpus were stuck in sem_lock(). It seems like we can
loop back to retry_undos with the lock held. That path takes the lock so
we will deadlock.
Andrew Morton [Sun, 21 Sep 2003 08:42:31 +0000 (01:42 -0700)]
[PATCH] Handle init_new_context failures
From: Anton Blanchard <anton@samba.org>
If init_new_context fails we definitely do not want to call mmput, because
that will call destroy_context against an uninitialised context. Instead
we should back out what we did in init_mm. Fixes some weird failures on
ppc64 when running a fork bomb.
Andrew Morton [Sun, 21 Sep 2003 08:42:22 +0000 (01:42 -0700)]
[PATCH] Speed up direct-io hugetlbpage handling
This patch short-circuits all the direct-io page dirtying logic for
higher-order pages. Without this, we pointlessly bounce BIOs up to keventd
all the time.
Andrew Morton [Sun, 21 Sep 2003 08:42:05 +0000 (01:42 -0700)]
[PATCH] deadline insert_here fix
From: Nick Piggin <piggin@cyberone.com.au>
Fix fallout from Jens' insert_here removal. Without it its possible that a
request on the dispatch list is on the merge hash as well which is bad. I
don't _think_ this would happen in any code paths, but I haven't looked too
closely. It makes the API a bit less fragile anyway.
Andrew Morton [Sun, 21 Sep 2003 08:41:56 +0000 (01:41 -0700)]
[PATCH] x445: setup_ioapic_ids_from_mpc fix
From: James Cleverdon <jamesclv@us.ibm.com>
32-way IBM x445s will have I/O xAPICs with IDs greater than 0xF (0x8 to 0xE
isn't enough). This breaks the code in setup_ioapic_ids_from_mpc.
However, the entire unique ID check is unnecessary. Only I/O APICs using
the serial APIC bus need the unique numbers. Those sending messages
through the system bus simply don't use them.
Andrew Morton [Sun, 21 Sep 2003 08:41:47 +0000 (01:41 -0700)]
[PATCH] Incorrect value for SIGRTMAX
From: Corey Minyard <minyard@acm.org>
I was having a problem with signals with POSIX timers, and it turns out
that the value of SIGRTMAX is incorrect. Remember that there is no
signal 0, so the signals should go from 1-_NSIG. However, SIGRTMAX is
defined as (_NSIG-1) in all architectures. The following patch fixes this.
This define is only used in drivers/usb/core/devio.c and
kernel/posix-timers.c, and both are incorrect without this fix. There's
also no check for zero in posix-timers.c, that fix is part of the diff.
Also, shouldn't do_sigaction() use this value instead of _NSIG? It's
not a big deal, but some architectures have different values for _NSIG
and SIGRTMAX.
Andrew Morton [Sun, 21 Sep 2003 08:41:38 +0000 (01:41 -0700)]
[PATCH] NCR5380 timeout fix
From: Wagner_Volanin <fadinha.mail@terra.com.br>
I have an old Genius Colorpage-SP2 SCSI scanner. It is shipped with a
MS-PNR 8bit ISA non-pnp proprietary SCSI card from Microtek.
Although its chipset is a NCR53c400a, it wouldn't work with the appropriate
driver, always accusing timeout, whatever settings I passed to it.
Today I messed a little with the NCR5380.c file in drivers/scsi which is
included by the g_NCR5380 driver and I couldn't understand one thing:
Why the function NCR5380_poll_politely() returned the value 'r' on success
if this value should be '0' case everything went ok...
So I changed "return r;" to "return 0;" and after that my scanner worked
fine, and was easily detected by SANE, without a single error message. :)
I have not the time to delve into the problem further, but I wanted to
report this. I couldn't find any counter-effects caused by changing these
return values.
Andrew Morton [Sun, 21 Sep 2003 08:41:29 +0000 (01:41 -0700)]
[PATCH] hangcheck compile fix
From: john stultz <johnstul@us.ibm.com>
Since monotonic_clock() is not defined on every arch yet, this patch
insures the hangcheck-timer module (currently the only user of
monotonic-clock) is not built where it will not compile.
I know, I know. Ideally monotonic_clock() would be implemented on all
arches, but I've just not had the time. If any of the non x86/x86-64
folks feel bored, drop me a line. It'd be a fairly easy project.
Andrew Morton [Sun, 21 Sep 2003 08:41:21 +0000 (01:41 -0700)]
[PATCH] Export new char dev functions
From: Jonathan Corbet <corbet@lwn.net>
Nobody told me that the failure to export these (like their block
counterparts) was anything but an oversight; modules will not be able to
use larger device numbers without them. So...this patch exports the new
char device functions.
Andrew Morton [Sun, 21 Sep 2003 08:40:58 +0000 (01:40 -0700)]
[PATCH] access_ok is likely
From Manfred
While trying to figure out why sysv msg is around 30% slower than pipes for
data transfers I noticed that gcc's autodetection (3.2.2) guesses the
"if(access_ok())" tests in uaccess.h wrong and puts the error memset into the
direct path and the copy out of line.
So tell the compiler that access_ok() is likely to be true.
Andrew Morton [Sun, 21 Sep 2003 08:40:26 +0000 (01:40 -0700)]
[PATCH] Summit sub-arch: Make logical IDs independent of BIOS numbering scheme
From: James Cleverdon <jamesclv@us.ibm.com>
In forthcoming IBM x445 systems, the physical APIC ID will not follow the
simple rule laid out by Intel and encoded into xapic_phys_to_log_apicid.
(The BIOS code that sets IDs doesn't work right above 16 CPUs if HT is turned
on, so for > 16-way the BIOS will disable HT and repack the physical CPUs
into APIC clusters.)
Anyway, it's a good idea to make the APIC code more independent of any
particular BIOS numbering scheme. This patch allocates logical IDs based on
how many CPUs have already been onlined in a particular APIC cluster.
Andrew Morton [Sun, 21 Sep 2003 08:40:10 +0000 (01:40 -0700)]
[PATCH] fix incorrect argv[0] for init
From: Erik Andersen <andersen@codepoet.org>
When someone specifies "init=" to select an alternative binary to run
instead of /sbin/init, argv[0] is not set correctly. This is a problem for
programs such as busybox that multiplex applications based on the value of
argv[0]. For example, even if you specify init=/bin/sh" on the kernel
command line, busybox will still receive "/sbin/init" as argv[0] and will
therefore run init rather than /bin/sh...
Andrew Morton [Sun, 21 Sep 2003 08:40:01 +0000 (01:40 -0700)]
[PATCH] file locking memory leak
From: Matthew Wilcox <willy@debian.org>
This patch fixes a memory leak in the file locking code. Each attempt to
unlock a file would result in the leak of a file lock. Many thanks to
Martin Josefsson for providing the testcase which enabled me to figure out
the problem.
Andrew Morton [Sun, 21 Sep 2003 08:39:37 +0000 (01:39 -0700)]
[PATCH] reiserfs: add checks from 2.4 into 2.5
From: Oleg Drokin <green@namesys.com>
This patch adds more consistency checks to reiserfs (check that transaction
is not bigger than journal, check that we reply blocks not beyond fs and
check that fs fits the block device). Similar patch was included into 2.4
some time ago.
Andrew Morton [Sun, 21 Sep 2003 08:39:20 +0000 (01:39 -0700)]
[PATCH] allow x86 NUMA architecture detection to fail
From: Dave Hansen <haveblue@us.ibm.com>
As described in this bug: http://bugme.osdl.org/show_bug.cgi?id=653 , if
you enable Summit support and NUMA Discontigmem support but boot on a
non-Summit box, the kernel will fail to boot. The problem is that the
Summit code can not correctly get the NUMA memory configuration of a
flat box. The code to do that is in get_memcfg_numa_flat(), but it
never gets called.
This patch implements a fallback to the generic NUMA code in
get_memcfg_numa_flat() if the Summit detection fails. The patch also
adds the necessary bits to the Summit code so that it *knows* when it
fails.
Andrew Morton [Sun, 21 Sep 2003 08:39:11 +0000 (01:39 -0700)]
[PATCH] any_online_cpu fix
From: William Lee Irwin III <wli@holomorphy.com>
any_online_cpu() is required to and with cpu_online_map before
attempting to find an online cpu somewhere in the map; this patch adds
that logic to the implementation(s) of any_online_cpu().
Andrew Morton [Sun, 21 Sep 2003 08:38:38 +0000 (01:38 -0700)]
[PATCH] Move slab objects to the end of the real allocation
From: Manfred Spraul <manfred@colorfullife.com>
The real memory allocation is usually larger than the actual object size:
either due to L1 cache line padding, or due to page padding with
CONFIG_DEBUG_PAGEALLOC. Right now objects are placed to the beginning of
the real allocation, but to trigger bugs it's better to move objects to the
end of the real allocation: that way accesses behind the end of the
allocation have a larger chance of hitting the (unmapped) next page. The
attached patch moves the objects to align them with the end of the real
allocation.
Actually it contains 4 seperate changes:
- Do not page-pad allocations that are <= SMP_CACHE_LINE_SIZE. This
crashes. Right now the limit is hardcoded to 128 bytes, but sooner or
later an arch will appear with 256 byte cache lines.
- cleanup: redzone bytes are not accessed with inline helper functions,
instead of magic offsets scattered throughout slab.c
- main change: move objects to the end of the allocation - trivial after
the cleanup.
- Print old redzone value if a redzone mismatch happens: This makes it
simpler to figure out what happened [single bit error, wrong redzone
code, overwritten]
Andrew Morton [Sun, 21 Sep 2003 08:38:24 +0000 (01:38 -0700)]
[PATCH] CPU scheduler interactivity changes
From: Con Kolivas <kernel@kolivas.org>
Interactivity scheduler tweaks on top of Ingo's A3 interactivity patch.
Interactive credit added to task struct to find truly interactive tasks and
treat them differently.
Extra #defines included as helpers for conversion to/from nanosecond timing,
to work out an average timeslice for nice 0 tasks, and the effective dynamic
priority bonuses that will be given to tasks.
MAX_SLEEP_AVG modified to change dynamic priority by one for a nice 0 task
sleeping or running for one full timeslice.
CREDIT_LIMIT is the number of times a task earns sleep_avg over MAX_SLEEP_AVG
before it is considered HIGH_CREDIT (truly interactive); and -CREDIT_LIMIT is
LOW_CREDIT
TIMESLICE GRANULARITY is modified to be more frequent for more
interactivetasks (10 ms for top 2 dynamic priorities and then halving each
priority belowthat) and less frequent per extra cpu.
JUST_INTERACTIVE_SLEEP logic created to be a sleep_avg consistent with giving
a task enough dynamic priority to remain on the active array.
Task preemption of equal priority tasks is dropped as requeuing with
TIMESLICE_GRANULARITY makes this unecessary.
Dynamic priority bonus simplified.
User tasks that sleep a long time and not waking from uninterruptible sleep
are sought and categorised as idle. Their sleep avg is limited in it's rise to
prevent them becoming high priority and suddenly turning into cpu hogs.
Bonus for sleeping is proportionately higher the lower the dynamic priority of
a task is; this allows for very rapid escalation to interactive status.
Tasks that are LOW_CREDIT are limited in rise per sleep to one priority level.
Non HIGH_CREDIT tasks waking from uninterruptible sleep are sought to detect
cpu hogs waiting on I/O and their sleep_avg rise is limited to just
interactive state to prevent cpu bound tasks from becoming interactive during
I/O wait.
Tasks that earn sleep_avg over MAX_SLEEP_AVG get interactive credits.
On runqueue bonus is not given to non HIGH_CREDIT tasks waking from
uninterruptible sleep.
Forked tasks and their parents get sleep_avg limited to the minimum necessary
to maintain their effective dynamic priority thus preventing repeated forking
from being a way to get highly interactive, but not penalise them noticably
otherwise.
CAN_MIGRATE_TASK cleaned up and modified to work with nanosecond timestamps.
Reverted Ingo's A3 Starvation limit change - it was making interactive tasks
suffer more under increasing load. If a cpu is grossly overloaded and
everyone is going to starve it may as well run interactive tasks
preferentially.
Task requeuing is limited to interactive tasks only (cpu bound tasks dont need
low latency and derive benefit from longer timeslices), and they must have at
least TIMESLICE_GRANULARITY remaining.
HIGH_CREDIT tasks get penalised less sleep_avg the more interactive they are
thus keeping them interactive for bursts but if they become sustained cpu hogs
they will slide increasingly rapidly down the dynamic priority scale.
Tasks that run out of sleep_avg, are still using up cpu time and are not high
or low credit yet get penalised interactive credits to determine LOW_CREDIT
tasks (cpu bound ones).
Andrew Morton [Sun, 21 Sep 2003 08:38:16 +0000 (01:38 -0700)]
[PATCH] CPU scheduler balancing fix
From: Nick Piggin <piggin@cyberone.com.au>
The patch changes the imbalance required before a balance to 25% from 50% -
as the comments intend. It also changes a case where the balancing
wouldn't be done if the imbalance was >= 25% but only 1 task difference.
The downside of the second change is that one task may bounce from one cpu
to another for some loads. This will only bounce once every 200ms, so it
shouldn't be a big problem.
(Benchmarking results are basically a wash - SDET is increased maybe 0.5%)
Andrew Morton [Sun, 21 Sep 2003 08:38:00 +0000 (01:38 -0700)]
[PATCH] scheduler infrastructure
From: Ingo Molnar <mingo@elte.hu>
the attached scheduler patch (against test2-mm2) adds the scheduling
infrastructure items discussed on lkml. I got good feedback - and while i
dont expect it to solve all problems, it does solve a number of bad ones:
- test_starve.c code from David Mosberger
- thud.c making the system unusuable due to unfairness
- fair/accurate sleep average based on a finegrained clock
- audio skipping way too easily
other changes in sched-test2-mm2-A3:
- ia64 sched_clock() code, from David Mosberger.
- migration thread startup without relying on implicit scheduling
behavior. While the current 2.6 code is correct (due to the cpu-up code
adding CPUs one by one), but it's also fragile - and this code cannot
be carried over into the 2.4 backports. So adding this method would
clean up the startup and would make it easier to have 2.4 backports.
and here's the original changelog for the scheduler changes:
- cycle accuracy (nanosec resolution) timekeeping within the scheduler.
This fixes a number of audio artifacts (skipping) i've reproduced. I
dont think we can get away without going cycle accuracy - reading the
cycle counter adds some overhead, but it's acceptable. The first
nanosec-accuracy patch was done by Mike Galbraith - this patch is
different but similar in nature. I went further in also changing the
sleep_avg to be of nanosec resolution.
- more finegrained timeslices: there's now a timeslice 'sub unit' of 50
usecs (TIMESLICE_GRANULARITY) - CPU hogs on the same priority level
will roundrobin with this unit. This change is intended to make gaming
latencies shorter.
- include scheduling latency in sleep bonus calculation. This change
extends the sleep-average calculation to the period of time a task
spends on the runqueue but doesnt get scheduled yet, right after
wakeup. Note that tasks that were preempted (ie. not woken up) and are
still on the runqueue do not get this benefit. This change closes one
of the last hole in the dynamic priority estimation, it should result
in interactive tasks getting more priority under heavy load. This
change also fixes the test-starve.c testcase from David Mosberger.
The TSC-based scheduler clock is disabled on ia32 NUMA platforms. (ie.
platforms that have unsynched TSC for sure.) Those platforms should provide
the proper code to rely on the TSC in a global way. (no such infrastructure
exists at the moment - the monotonic TSC-based clock doesnt deal with TSC
offsets either, as far as i can tell.)
Andrew Morton [Sun, 21 Sep 2003 08:37:10 +0000 (01:37 -0700)]
[PATCH] Fix setpgid and threads
From: Jeremy Fitzhardinge <jeremy@goop.org>
I'm resending my patch to fix this problem. To recap: every task_struct
has its own copy of the thread group's pgrp. Only the thread group
leader is allowed to change the tgrp's pgrp, but it only updates its own
copy of pgrp, while all the other threads in the tgrp use the old value
they inherited on creation.
This patch simply updates all the other thread's pgrp when the tgrp
leader changes pgrp. Ulrich has already expressed reservations about
this patch since it is (1) incomplete (it doesn't cover the case of
other ids which have similar problems), (2) racy (it doesn't synchronize
with other threads looking at the task pgrp, so they could see an
inconsistent view) and (3) slow (it takes linear time with respect to
the number of threads in the tgrp).
My reaction is that (1) it fixes the actual bug I'm encountering in a
real program. (2) doesn't really matter for pgrp, since it is mostly an
issue with respect to the terminal job-control code (which is even more
broken without this patch. Regarding (3), I think there are very few
programs which have a large number of threads which change process group
id on a regular basis (a heavily multi-threaded job-control shell?).
Ulrich also said he has a (proposed?) much better fix, which I've been
looking forward to. I'm submitting this patch as a stop-gap fix for a
real bug, and perhaps to prompt the improved patch.
An alternative fix, at least for pgrp, is to change all references to
->pgrp to group_leader->pgrp. This may be sufficient on its own, but it
would be a reasonably intrusive patch (I count 95 instances in 32 files
in the 2.6.0-test3-mm3 tree).
Andrew Morton [Sun, 21 Sep 2003 08:37:01 +0000 (01:37 -0700)]
[PATCH] real-time enhanced page allocator and throttling
From: Robert Love <rml@tech9.net>
- Let real-time tasks dip further into the reserves than usual in
__alloc_pages(). There are a lot of ways to special case this. This
patch just cuts z->pages_low in half, before doing the incremental min
thing, for real-time tasks. I do not do anything in the low memory slow
path. We can be a _lot_ more aggressive if we want. Right now, we just
give real-time tasks a little help.
- Never ever call balance_dirty_pages() on a real-time task. Where and
how exactly we handle this is up for debate. We could, for example,
special case real-time tasks inside balance_dirty_pages(). This would
allow us to perform some of the work (say, waking up pdflush) but not
other work (say, the active throttling). As it stands now, we do the
per-processor accounting in balance_dirty_pages_ratelimited() but we
never call balance_dirty_pages(). Lots of approaches work. What we want
to do is never engage the real-time task in forced writeback.
Russell King [Sun, 21 Sep 2003 22:05:12 +0000 (23:05 +0100)]
[PCMCIA] Fix deadlocks caused between PCMCIA card fix and device model
The problem was that the semaphore which prevents ds interfering with
the sleepy card initialisation (skt_sem in pccardd) is blocking insmod
of the socket driver. However, the socket driver is being called with
the PCI bus semaphore held by the driver model.
pccardd in turn discovered a cardbus card (with skt_sem held), so it
is trying to add the PCI devices to the PCI bus, and this requires the
driver model to grab the PCI bus semaphore, but its already locked.
We move the class device register into pccardd so we get a natural
ordering between the ds socket initialisation and pccardd trying to
detect inserted cards.
We also fix a potential use-after-free caused by rmmod'ing the socket
driver before ds has shut down.
Albert Cahalan [Sun, 21 Sep 2003 05:16:28 +0000 (22:16 -0700)]
[PATCH] fix for hidden-task problem
It's bad to make (CLONE_THREAD | CLONE_DETACHED) tasks
be _completely_ hidden. Resource consumption is hard
to track down if a user can hide a task from /bin/ps.
This patch, supported by the procps-3.1.13 release,
gives admins the ability to search for such tasks.
The top-level /proc directory remains uncontaminated.
Matthew Wilcox [Sun, 21 Sep 2003 03:20:02 +0000 (20:20 -0700)]
[PATCH] Move EISA_bus
When I change the setting of CONFIG_EISA, everything rebuilds. This is
because EISA_bus is declared in <asm/processor.h> which is implicitly
included by just about everything. This is a silly place to declare it,
so this patch moves it to include/linux/eisa.h.
While I'm at it, I also move the variable definition to
drivers/eisa/eisa-bus.c. The rest of this patch is fixing up the fallout
from having to include <linux/eisa.h> if you use EISA_bus.
Jeff Garzik [Sat, 20 Sep 2003 16:39:42 +0000 (12:39 -0400)]
[sound/oss i810_audio] sync with 2.4
* increase length of wait for analog-ready
* fix printk prefix (cosmetic)
* bail out for pure MMIO interfaces, instead of attempting to use it
via PIO and hanging the system.
Jochen Friedrich [Sat, 20 Sep 2003 11:03:43 +0000 (07:03 -0400)]
[tokenring] fix breakage in proteon, skisa
this one fixes both drivers. They have been broken since the
reorganization in June. Unfortunately, my major build platform (alpha) had
some issues with later 2.5.X kernels (cache problems causing all kind of
funny behaviour), so i waited until these problems had been resolved by
the alpha gurus :-/...
In the mean time i also upgraded pine. I hope the patch corruption issue
is resolved by now.
Amir Noam [Sat, 20 Sep 2003 10:49:10 +0000 (06:49 -0400)]
[PATCH] [bonding] Convert /proc to seq_file
This patch converts /proc/net/bondX/info into /proc/net/bonding/bondX
using the seq_file interface.
This is based on Stephen's recent patch, but slightly modified to work
with the propagation patch set and with some locking changes to make it
simpler.
The patch applies both on 2.4 (after the sync set from earlier today)
and on 2.6 (after the propagation set from 2003/11/9).
Adrian Bunk [Sat, 20 Sep 2003 10:49:01 +0000 (06:49 -0400)]
[PATCH] fix sbni.c compile with gcc 3.3
sbni.c in 2.6.0-test5 fails to compile with gcc 3.3 with the following
error:
<-- snip -->
...
CC drivers/net/wan/sbni.o
...
drivers/net/wan/sbni.c: In function `calc_crc32':
drivers/net/wan/sbni.c:1568: error: asm-specifier for variable `_crc'
conflicts with asm clobber list
make[3]: *** [drivers/net/wan/sbni.o] Error 1
<-- snip -->
Below is the patch by Margit Schubert-White to fix this issue (it is
already in 2.4).
Andrew Morton [Sat, 20 Sep 2003 10:48:53 +0000 (06:48 -0400)]
[PATCH] e1000 bug
Rick Lindsley <ricklind@us.ibm.com> wrote:
>
> since it's been out for a while you probably already know, but the patch
> for e1000_main.c has a bug in it. Looks like it will fail at line 1550 if
> compiled with NETIF_F_TSO defined.
>
Update sealevel driver to match current net_device interface:
- dynamically allocate netdevice and private data.
- get rid of MOD_INC/DEC
- if_ptr not used
- bugfix: not all of board structure was being zeroed.
Note: this driver still doesn't probe() correctly since it just assumes that
if loaded the hardware is there!
Since I don't have one of these boards...
tested it by #ifdef'ing out all the bits that touch actual hardware.