]> git.neil.brown.name Git - history.git/log
history.git
22 years ago[e1000] s/int/unsigned int/ for descriptor ring indexes
Scott Feldman [Mon, 7 Jul 2003 21:57:00 +0000 (17:57 -0400)]
[e1000] s/int/unsigned int/ for descriptor ring indexes

* Perf cleanup: s/int/unsigned int/ for descriptor ring indexes
  [suggestion by Jeff Garzik].
* Perf cleanup: cache references to ring elements using local pointer

22 years ago[e1000] h/w workaround for mis-fused parts
Scott Feldman [Mon, 7 Jul 2003 21:54:51 +0000 (17:54 -0400)]
[e1000] h/w workaround for mis-fused parts

* h/w workaround: several 10's of thousands of 82547 controllers where
  mis-fused during manufacturing, resulting in PHY Tx amplitude to be
  too high and out of spec.  This workaround detects those parts, and
  compensates the Tx amplitude by subtracting ~80mV.

22 years ago[e1000] ethtool diag cleanup
Scott Feldman [Mon, 7 Jul 2003 21:52:31 +0000 (17:52 -0400)]
[e1000] ethtool diag cleanup

* Cleanup: ethtool diags: only reset if not if_running.

22 years ago[e1000] alloc_etherdev failure didn't cleanup regions
Scott Feldman [Mon, 7 Jul 2003 21:50:33 +0000 (17:50 -0400)]
[e1000] alloc_etherdev failure didn't cleanup regions

* Bug fix: alloc_etherdev failure didn't cleanup regions in probe.

22 years ago[e1000] missing Tx cleanup opportunities during intr handling
Scott Feldman [Mon, 7 Jul 2003 21:48:54 +0000 (17:48 -0400)]
[e1000] missing Tx cleanup opportunities during intr handling

* Bug fix: missing Tx cleanup opportunities during interrupt handling.

22 years ago[e1000] fix VLAN support on PPC64
Scott Feldman [Mon, 7 Jul 2003 21:47:37 +0000 (17:47 -0400)]
[e1000] fix VLAN support on PPC64

* Bug fix: fix VLAN support on PPC64 [Mark Rakes (mrakes@vivato.net)]

22 years ago[e1000] request_irq() failure resulted in freeing twice
Scott Feldman [Mon, 7 Jul 2003 21:46:39 +0000 (17:46 -0400)]
[e1000] request_irq() failure resulted in freeing twice

* Bug fix: request_irq() failure resulted in freeing resources twice!
  [Don Fry (brazilnut@us.ibm.com)]

22 years ago[PATCH] via-rhine 1.18-2.5: Fix Rhine-I regression
Roger Luethi [Mon, 7 Jul 2003 21:46:02 +0000 (17:46 -0400)]
[PATCH] via-rhine 1.18-2.5: Fix Rhine-I regression

This patch addresses a minor regression reported by Rhine-I users (leading
to occasional Tx timeouts).

I also merged some cosmetic changes.

22 years ago[netdrvr 8139too] fix debug printk
Jeff Garzik [Sat, 5 Jul 2003 11:15:28 +0000 (07:15 -0400)]
[netdrvr 8139too] fix debug printk

printk args had been accidentally reversed

22 years ago[PATCH] C99 initializers in hdlc_generic.c
Krzysztof Halasa [Sat, 5 Jul 2003 03:17:46 +0000 (20:17 -0700)]
[PATCH] C99 initializers in hdlc_generic.c

22 years ago[PATCH] i2o_scsi build fix
Andrew Morton [Sat, 5 Jul 2003 02:38:27 +0000 (19:38 -0700)]
[PATCH] i2o_scsi build fix

i2o_scsi.c now needs pci.h.

22 years ago[PATCH] fix rfcomm oops
Andrew Morton [Sat, 5 Jul 2003 02:38:20 +0000 (19:38 -0700)]
[PATCH] fix rfcomm oops

From: ilmari@ilmari.org (Dagfinn Ilmari Mannsaker)

It turns out that net/bluetooth/rfcomm/sock.c (and
net/bluetooth/hci_sock.c) had been left out when net_proto_family gained an
owner field, here's a patch that fixes them both.

22 years ago[PATCH] MTD build fix for old gcc's
Andrew Morton [Sat, 5 Jul 2003 02:38:13 +0000 (19:38 -0700)]
[PATCH] MTD build fix for old gcc's

From: junkio@cox.net

Sigh.  Is there a gcc option to tell it to not accept this incompatible C99
extension?

22 years ago[PATCH] fix current->user->__count leak
Andrew Morton [Sat, 5 Jul 2003 02:38:06 +0000 (19:38 -0700)]
[PATCH] fix current->user->__count leak

From: Arvind Kandhare <arvind.kan@wipro.com>

When switch_uid is called, the reference count of the new user is
incremented twice.  I think the increment in the switch_uid is done because
of the reparent_to_init() function which does not increase the __count for
root user.

But if switch_uid is called from any other function, the reference count is
already incremented by the caller by calling alloc_uid for the new user.
Hence the count is incremented twice.  The user struct will not be deleted
even when there are no processes holding a reference count for it.  This
does not cause any problem currently because nothing is dependent on timely
deletion of the user struct.

22 years ago[PATCH] epoll: microoptimisations
Andrew Morton [Sat, 5 Jul 2003 02:38:00 +0000 (19:38 -0700)]
[PATCH] epoll: microoptimisations

From: Davide Libenzi <davidel@xmailserver.org>

- Inline eventpoll_release() so that __fput() does not need to call in
  epoll code if the file itself is not registered inside an epoll fd

- Add <linux/types.h> inclusion due __u32 and __u64 usage

- Fix debug printf that would otherwise panic if enabled with the new
  epoll code

22 years ago[PATCH] bootmem.c cleanups
Andrew Morton [Sat, 5 Jul 2003 02:37:54 +0000 (19:37 -0700)]
[PATCH] bootmem.c cleanups

From: Davide Libenzi <davidel@xmailserver.org>

- Remove a couple of impossible debug checks (unsigneds cannot be
  negative!)

- If __alloc_bootmem_core() fails with a goal and unaligned node_boot_start
  it'll loop fovever.

22 years ago[PATCH] after exec_mmap(), exec cannot fail
Andrew Morton [Sat, 5 Jul 2003 02:37:46 +0000 (19:37 -0700)]
[PATCH] after exec_mmap(), exec cannot fail

If de_thread() fails in flush_old_exec() then we try to fail the execve().

That is a bad move, because exec_mmap() has already switched the current
process over to the new mm.  The new process is not yet sufficiently set up
to handle the error and the kernel doublefaults and dies.  exec_mmap() is the
point of no return.

Change flush_old_exec() to call de_thread() before running exec_mmap() so the
execing program sees the error.  I added fault injection to both de_thread()
and exec_mmap() - everything now survives OK.

22 years ago[PATCH] block allocation comments
Andrew Morton [Sat, 5 Jul 2003 02:37:40 +0000 (19:37 -0700)]
[PATCH] block allocation comments

From: Nick Piggin <piggin@cyberone.com.au>

Add some comments to the request allocation code.

22 years ago[PATCH] get_io_context fixes
Andrew Morton [Sat, 5 Jul 2003 02:37:34 +0000 (19:37 -0700)]
[PATCH] get_io_context fixes

- pass gfp_flags to get_io_context(): not all callers are forced to use
  GFP_ATOMIC().

- fix locking in get_io_context(): bump the refcount whilein the exclusive
  region.

- don't go oops in get_io_context() if the kmalloc failed.

- in as_get_io_context(): fail the whole thing if we were unable to
  allocate the AS-specific part.

- as_remove_queued_request() cleanup

22 years ago[PATCH] block request batching
Andrew Morton [Sat, 5 Jul 2003 02:37:26 +0000 (19:37 -0700)]
[PATCH] block request batching

From: Nick Piggin <piggin@cyberone.com.au>

The following patch gets batching working how it should be.

After a process is woken up, it is allowed to allocate up to 32 requests
for 20ms.  It does not stop other processes submitting requests if it isn't
submitting though.  This should allow less context switches, and allow
batches of requests from each process to be sent to the io scheduler
instead of 1 request from each process.

tiobench sequential writes are more than tripled, random writes are nearly
doubled over mm1.  In earlier tests I generally saw better CPU efficiency
but it doesn't show here.  There is still debug to be taken out.  Its also
only on UP.

                                Avg     Maximum     Lat%   Lat%   CPU
 Identifier    Rate  (CPU%)  Latency   Latency     >2s    >10s   Eff
 ------------------- ------ --------- ---------- ------- ------ ----
 -2.5.71-mm1   11.13 3.783%    46.10    24668.01   0.84   0.02   294
 +2.5.71-mm1   13.21 4.489%    37.37     5691.66   0.76   0.00   294

 Random Reads
 ------------------- ------ --------- ---------- ------- ------ ----
 -2.5.71-mm1    0.97 0.582%   519.86     6444.66  11.93   0.00   167
 +2.5.71-mm1    1.01 0.604%   484.59     6604.93  10.73   0.00   167

 Sequential Writes
 ------------------- ------ --------- ---------- ------- ------ ----
 -2.5.71-mm1    4.85 4.456%    77.80    99359.39   0.18   0.13   109
 +2.5.71-mm1   14.11 14.19%    10.07    22805.47   0.09   0.04    99

 Random Writes
 ------------------- ------ --------- ---------- ------- ------ ----
 -2.5.71-mm1    0.46 0.371%    14.48     6173.90   0.23   0.00   125
 +2.5.71-mm1    0.86 0.744%    24.08     8753.66   0.31   0.00   115

It decreases context switch rate on IBM's 8-way on ext2 tiobench 64 threads
from ~2500/s to ~140/s on their regression tests.

22 years ago[PATCH] generic io contexts
Andrew Morton [Sat, 5 Jul 2003 02:37:19 +0000 (19:37 -0700)]
[PATCH] generic io contexts

From: Nick Piggin <piggin@cyberone.com.au>

Generalise the AS-specific per-process IO context so that other IO schedulers
could use it.

22 years ago[PATCH] block batching fairness
Andrew Morton [Sat, 5 Jul 2003 02:37:12 +0000 (19:37 -0700)]
[PATCH] block batching fairness

From: Nick Piggin <piggin@cyberone.com.au>

This patch fixes the request batching fairness/starvation issue.  Its not
clear what is going on with 2.4, but it seems that its a problem around this
area.

Anyway, previously:

* request queue fills up
* process 1 calls get_request, sleeps
* a couple of requests are freed
* process 2 calls get_request, proceeds
* a couple of requests are freed
* process 2 calls get_request...

Now as unlikely as it seems, it could be a problem.  Its a fairness problem
that process 2 can skip ahead of process 1 anyway.

With the patch:

* request queue fills up
* any process calling get_request will sleep
* once the queue gets below the batch watermark, processes
  start being worken, and may allocate.

This patch includes Chris Mason's fix to only clear queue_full when all tasks
have been woken.  Previously I think starvation and unfairness could still
occur.

With this change to the blk-fair-batches patch, Chris is showing some much
improved numbers for 2.4 - 170 ms max wait vs 2700ms without blk-fair-batches
for a dbench 90 run.  He didn't indicate how much difference his patch alone
made, but it is an important fix I think.

22 years ago[PATCH] handle OOM in get_request_wait()
Andrew Morton [Sat, 5 Jul 2003 02:37:05 +0000 (19:37 -0700)]
[PATCH] handle OOM in get_request_wait()

From: Nick Piggin <piggin@cyberone.com.au>

If there are no requess in flight against the target device and
get_request() fails, nothing will wake us up.  Fix.

22 years ago[PATCH] allow the IO scheduler to pass an allocation hint to
Andrew Morton [Sat, 5 Jul 2003 02:36:59 +0000 (19:36 -0700)]
[PATCH] allow the IO scheduler to pass an allocation hint to

From: Nick Piggin <piggin@cyberone.com.au>

This patch implements a hint so that AS can tell the request allocator to
allocate a request even if there are none left (the accounting is quite
flexible and easily handles overallocations).

elv_may_queue semantics have changed from "the elevator does _not_ want
another request allocated" to "the elevator _insists_ that another request is
allocated".  I couldn't see any harm ;)

Now in practice, AS will only allow _1_ request over the limit, because as
soon as the request is sent to AS, it stops anticipating.

22 years ago[PATCH] blk_congestion_wait threshold cleanup
Andrew Morton [Sat, 5 Jul 2003 02:36:51 +0000 (19:36 -0700)]
[PATCH] blk_congestion_wait threshold cleanup

From: Nick Piggin <piggin@cyberone.com.au>

Now that we are counting requests (not requests free), this patch changes
the congested & batch watermarks to be more logical.  Also a minor fix to
the sysfs code.

22 years ago[PATCH] per queue nr_requests
Andrew Morton [Sat, 5 Jul 2003 02:36:44 +0000 (19:36 -0700)]
[PATCH] per queue nr_requests

From: Nick Piggin <piggin@cyberone.com.au>

This gets rid of the global queue_nr_requests and usage of BLKDEV_MAX_RQ
(the latter is now only used to set the queues' defaults).

The queue depth becomes per-queue, controlled by a sysfs entry.

22 years ago[PATCH] Use kblockd for running request queues
Andrew Morton [Sat, 5 Jul 2003 02:36:37 +0000 (19:36 -0700)]
[PATCH] Use kblockd for running request queues

Using keventd for running request_fns is risky because keventd itself can
block on disk I/O.  Use the new kblockd kernel threads for the generic
unplugging.

22 years ago[PATCH] anticipatory I/O scheduler
Andrew Morton [Sat, 5 Jul 2003 02:36:30 +0000 (19:36 -0700)]
[PATCH] anticipatory I/O scheduler

From: Nick Piggin <piggin@cyberone.com.au>

This is the core anticipatory IO scheduler.  There are nearly 100 changesets
in this and five months work.  I really cannot describe it fully here.

Major points:

- It works by recognising that reads are dependent: we don't know where the
  next read will occur, but it's probably close-by the previous one.  So once
  a read has completed we leave the disk idle, anticipating that a request
  for a nearby read will come in.

- There is read batching and write batching logic.

  - when we're servicing a batch of writes we will refuse to seek away
    for a read for some tens of milliseconds.  Then the write stream is
    preempted.

  - when we're servicing a batch of reads (via anticipation) we'll do
    that for some tens of milliseconds, then preempt.

- There are request deadlines, for latency and fairness.
  The oldest outstanding request is examined at regular intervals. If
  this request is older than a specific deadline, it will be the next
  one dispatched. This gives a good fairness heuristic while being simple
  because processes tend to have localised IO.

Just about all of the rest of the complexity involves an array of fixups
which prevent most of teh obvious failure modes with anticipation: trying to
not leave the disk head pointlessly idle.  Some of these algorithms are:

- Process tracking.  If the process whose read we are anticipating submits
  a write, abandon anticipation.

- Process exit tracking.  If the process whose read we are anticipating
  exits, abandon anticipation.

- Process IO history.  We accumulate statistical info on the process's
  recent IO patterns to aid in making decisions about how long to anticipate
  new reads.

  Currently thinktime and seek distance are tracked. Thinktime is the
  time between when a process's last request has completed and when it
  submits another one. Seek distance is simply the number of sectors
  between each read request. If either statistic becomes too high, the
  it isn't anticipated that the process will submit another read.

The above all means that we need a per-process "io context".  This is a fully
refcounted structure.  In this patch it is AS-only.  later we generalise it a
little so other IO schedulers could use the same framework.

- Requests are grouped as synchronous and asynchronous whereas deadline
  scheduler groups requests as reads and writes. This can provide better
  sync write performance, and may give better responsiveness with journalling
  filesystems (although we haven't done that yet).

  We currently detect synchronous writes by nastily setting PF_SYNCWRITE in
  current->flags.  The plan is to remove this later, and to propagate the
  sync hint from writeback_contol.sync_mode into bio->bi_flags thence into
  request->flags.  Once that is done, direct-io needs to set the BIO sync
  hint as well.

- There is also quite a bit of complexity gone into bashing TCQ into
  submission. Timing for a read batch is not started until the first read
  request actually completes. A read batch also does not start until all
  outstanding writes have completed.

AS is the default IO scheduler.  deadline may be chosen by booting with
"elevator=deadline".

There are a few reasons for retaining deadline:

- AS is often slower than deadline in random IO loads with large TCQ
  windows. The usual real world task here is OLTP database loads.

- deadline is presumably more stable.

- deadline is much simpler.

The tunable per-queue entries under /sys/block/*/iosched/ are all in
milliseconds:

* read_expire

  Controls how long until a request becomes "expired".

  It also controls the interval between which expired requests are served,
  so set to 50, a request might take anywhere < 100ms to be serviced _if_ it
  is the next on the expired list.

  Obviously it can't make the disk go faster.  Result is basically the
  timeslice a reader gets in the presence of other IO.  100*((seek time /
  read_expire) + 1) is very roughly the % streaming read efficiency your disk
  should get in the presence of multiple readers.

* read_batch_expire

  Controls how much time a batch of reads is given before pending writes
  are served.  Higher value is more efficient.  Shouldn't really be below
  read_expire.

* write_ versions of the above

* antic_expire

  Controls the maximum amount of time we can anticipate a good read before
  giving up.  Many other factors may cause anticipation to be stopped early,
  or some processes will not be "anticipated" at all.  Should be a bit higher
  for big seek time devices though not a linear correspondance - most
  processes have only a few ms thinktime.

22 years ago[PATCH] elevator completion API
Andrew Morton [Sat, 5 Jul 2003 02:36:23 +0000 (19:36 -0700)]
[PATCH] elevator completion API

From: Nick Piggin <piggin@cyberone.com.au>

Introduces an elevator_completed_req() callback with which the generic
queueing layer may tell an IO scheduler that a particualr request has
finished.

22 years ago[PATCH] elv_may_queue() API function
Andrew Morton [Sat, 5 Jul 2003 02:36:16 +0000 (19:36 -0700)]
[PATCH] elv_may_queue() API function

Introduces the elv_may_queue() predicate with which the IO scheduler may tell
the generic request layer that we may add another request to this queue.

It is used by the CFQ elevator.

22 years ago[PATCH] Create `kblockd' workqueue
Andrew Morton [Sat, 5 Jul 2003 02:36:09 +0000 (19:36 -0700)]
[PATCH] Create `kblockd' workqueue

keventd is inappropriate for running block request queues because keventd
itself can get blocked on disk I/O.  Via call_usermodehelper()'s vfork and,
presumably, GFP_KERNEL allocations.

So create a new gang of kernel threads whose mandate is for running low-level
disk operations.  It must ever block on disk IO, so any memory allocations
should be GFP_NOIO.

We mainly use it for running unplug operations from interrupt context.

22 years ago[PATCH] bring back the batch_requests function
Andrew Morton [Sat, 5 Jul 2003 02:36:03 +0000 (19:36 -0700)]
[PATCH] bring back the batch_requests function

From: Nick Piggin <piggin@cyberone.com.au>

The batch_requests function got lost during the merge of the dynamic request
allocation patch.

We need it for the anticipatory scheduler - when the number of threads
exceeds the number of requests, the anticipated-upon task will undesirably
sleep in get_request_wait().

And apparently some block devices which use small requests need it so they
string a decent number together.

Jens has acked this patch.

22 years ago[PATCH] ipc semaphore optimization
Andrew Morton [Sat, 5 Jul 2003 02:35:55 +0000 (19:35 -0700)]
[PATCH] ipc semaphore optimization

From: "Chen, Kenneth W" <kenneth.w.chen@intel.com>

This patch proposes a performance fix for the current IPC semaphore
implementation.

There are two shortcoming in the current implementation:
try_atomic_semop() was called two times to wake up a blocked process,
once from the update_queue() (executed from the process that wakes up
the sleeping process) and once in the retry part of the blocked process
(executed from the block process that gets woken up).

A second issue is that when several sleeping processes that are eligible
for wake up, they woke up in daisy chain formation and each one in turn
to wake up next process in line.  However, every time when a process
wakes up, it start scans the wait queue from the beginning, not from
where it was last scanned.  This causes large number of unnecessary
scanning of the wait queue under a situation of deep wait queue.
Blocked processes come and go, but chances are there are still quite a
few blocked processes sit at the beginning of that queue.

What we are proposing here is to merge the portion of the code in the
bottom part of sys_semtimedop() (code that gets executed when a sleeping
process gets woken up) into update_queue() function.  The benefit is two
folds: (1) is to reduce redundant calls to try_atomic_semop() and (2) to
increase efficiency of finding eligible processes to wake up and higher
concurrency for multiple wake-ups.

We have measured that this patch improves throughput for a large
application significantly on a industry standard benchmark.

This patch is relative to 2.5.72.  Any feedback is very much
appreciated.

Some kernel profile data attached:

  Kernel profile before optimization:
  -----------------------------------------------
                0.05    0.14   40805/529060      sys_semop [133]
                0.55    1.73  488255/529060      ia64_ret_from_syscall
[2]
[52]     2.5    0.59    1.88  529060         sys_semtimedop [52]
                0.05    0.83  477766/817966      schedule_timeout [62]
                0.34    0.46  529064/989340      update_queue [61]
                0.14    0.00 1006740/6473086     try_atomic_semop [75]
                0.06    0.00  529060/989336      ipcperms [149]
  -----------------------------------------------

                0.30    0.40  460276/989340      semctl_main [68]
                0.34    0.46  529064/989340      sys_semtimedop [52]
[61]     1.5    0.64    0.87  989340         update_queue [61]
                0.75    0.00 5466346/6473086     try_atomic_semop [75]
                0.01    0.11  477676/576698      wake_up_process [146]
  -----------------------------------------------
                0.14    0.00 1006740/6473086     sys_semtimedop [52]
                0.75    0.00 5466346/6473086     update_queue [61]
[75]     0.9    0.89    0.00 6473086         try_atomic_semop [75]
  -----------------------------------------------

  Kernel profile with optimization:

  -----------------------------------------------
                0.03    0.05   26139/503178      sys_semop [155]
                0.46    0.92  477039/503178      ia64_ret_from_syscall
[2]
[61]     1.2    0.48    0.97  503178         sys_semtimedop [61]
                0.04    0.79  470724/784394      schedule_timeout [62]
                0.05    0.00  503178/3301773     try_atomic_semop [109]
                0.05    0.00  503178/930934      ipcperms [149]
                0.00    0.03   32454/460210      update_queue [99]
  -----------------------------------------------
                0.00    0.03   32454/460210      sys_semtimedop [61]
                0.06    0.36  427756/460210      semctl_main [75]
[99]     0.4    0.06    0.39  460210         update_queue [99]
                0.30    0.00 2798595/3301773     try_atomic_semop [109]
                0.00    0.09  470630/614097      wake_up_process [146]
  -----------------------------------------------
                0.05    0.00  503178/3301773     sys_semtimedop [61]
                0.30    0.00 2798595/3301773     update_queue [99]
[109]    0.3    0.35    0.00 3301773         try_atomic_semop [109]
  -----------------------------------------------=20

Both number of function calls to try_atomic_semop() and update_queue()
are reduced by 50% as a result of the merge.  Execution time of
sys_semtimedop is reduced because of the reduction in the low level
functions.

22 years ago[PATCH] PCI domain scanning fix
Andrew Morton [Sat, 5 Jul 2003 02:35:49 +0000 (19:35 -0700)]
[PATCH] PCI domain scanning fix

From: Matthew Wilcox <willy@debian.org>

ppc64 oopses on boot because pci_scan_bus_parented() is unexpectedly
returning NULL.  Change pci_scan_bus_parented() to correctly handle
overlapping PCI bus numbers on different domains.

22 years agoMerge bk://ppc.bkbits.net/for-linus-ppc
Linus Torvalds [Sat, 5 Jul 2003 02:22:49 +0000 (19:22 -0700)]
Merge bk://ppc.bkbits.net/for-linus-ppc
into home.osdl.org:/home/torvalds/v2.5/linux

22 years agoMerge samba.org:/home/paulus/kernel/linux-2.5
Paul Mackerras [Sat, 5 Jul 2003 23:13:11 +0000 (09:13 +1000)]
Merge samba.org:/home/paulus/kernel/linux-2.5
into samba.org:/home/paulus/kernel/for-linus-ppc

22 years ago[PATCH] wrong pid in siginfo_t
Ulrich Drepper [Fri, 4 Jul 2003 11:57:37 +0000 (04:57 -0700)]
[PATCH] wrong pid in siginfo_t

If a signal is sent via kill() or tkill() the kernel fills in the wrong
PID value in the siginfo_t structure (obviously only if the handler has
SA_SIGINFO set).

POSIX specifies the the si_pid field is filled with the process ID, and
in Linux parlance that's the "thread group" ID, not the thread ID.

22 years agoWhen forcing through a signal for some thread-synchronous
Linus Torvalds [Fri, 4 Jul 2003 10:53:27 +0000 (03:53 -0700)]
When forcing through a signal for some thread-synchronous
event (ie SIGSEGV, SIGFPE etc that happens as a result of a
trap as opposed to an external event), if the signal is
blocked we will not invoce a signal handler, we will just
kill the thread with the signal.

This is equivalent to what we do in the SIG_IGN case: you
cannot ignore or block synchronous signals, and if you try,
we'll just have to kill you.

We don't want to handle endless recursive faults, which the
old behaviour easily led to if the stack was bad, for example.

22 years agoGo back to defaulting to 6-byte commands for MODE SENSE,
Linus Torvalds [Fri, 4 Jul 2003 10:24:32 +0000 (03:24 -0700)]
Go back to defaulting to 6-byte commands for MODE SENSE,
since some drivers seem to be unhappy about the 10-byte
version.

The subsystem configuration can override this (eg USB or
ide-scsi).

22 years ago[PATCH] EISA: avoid unnecessary probing
Marc Zyngier [Fri, 4 Jul 2003 10:00:47 +0000 (03:00 -0700)]
[PATCH] EISA: avoid unnecessary probing

- By default, do not try to probe the bus if the mainboard does not
  seems to support EISA (allow this behaviour to be changed through a
  command-line option).

22 years ago[PATCH] EISA: PCI-EISA dma_mask
Marc Zyngier [Fri, 4 Jul 2003 10:00:39 +0000 (03:00 -0700)]
[PATCH] EISA: PCI-EISA dma_mask

- Use parent bridge device dma_mask as default for each discovered
  device.

22 years ago[PATCH] EISA: PA-RISC changes
Marc Zyngier [Fri, 4 Jul 2003 10:00:33 +0000 (03:00 -0700)]
[PATCH] EISA: PA-RISC changes

- Probe the right number of EISA slots on PA-RISC. No more, no less.

22 years ago[PATCH] EISA: More EISA ids
Marc Zyngier [Fri, 4 Jul 2003 10:00:26 +0000 (03:00 -0700)]
[PATCH] EISA: More EISA ids

22 years ago[PATCH] EISA: Documentation update
Marc Zyngier [Fri, 4 Jul 2003 10:00:19 +0000 (03:00 -0700)]
[PATCH] EISA: Documentation update

22 years ago[PATCH] EISA: core changes
Marc Zyngier [Fri, 4 Jul 2003 10:00:12 +0000 (03:00 -0700)]
[PATCH] EISA: core changes

- Now reserves I/O ranges according to EISA specs (four 256 bytes
  regions instead of a single 4KB region).

- By default, do not try to probe the bus if the mainboard does not
  seems to support EISA (allow this behaviour to be changed through a
  command-line option).

- Use parent bridge device dma_mask as default for each discovered
  device.

- Allow devices to be enabled or disabled from the kernel command line
  (useful for non-x86 platforms where the firmware simply disable
  devices it doesn't know about...).

22 years agoMerge bk://kernel.bkbits.net/jgarzik/irda-2.5
Linus Torvalds [Fri, 4 Jul 2003 09:54:32 +0000 (02:54 -0700)]
Merge bk://kernel.bkbits.net/jgarzik/irda-2.5
into home.osdl.org:/home/torvalds/v2.5/linux

22 years agoCarl-Daniel Hailfinger suggest adding a paranoid incoming
Linus Torvalds [Fri, 4 Jul 2003 07:13:56 +0000 (00:13 -0700)]
Carl-Daniel Hailfinger suggest adding a paranoid incoming
trigger as per the "bk help triggers" suggestion, so that
we'll see any new triggers showing up in the tree.

Make it so.

22 years ago[PATCH] Use the intents in 'nameidata' to improve NFS close-to-open consistency
Trond Myklebust [Fri, 4 Jul 2003 05:07:27 +0000 (22:07 -0700)]
[PATCH] Use the intents in 'nameidata' to improve NFS close-to-open consistency

  - Make use of the open intents to improve close-to-open
    cache consistency. Only force data cache revalidation when
    we're doing an open().

  - Add true exclusive create to NFSv3.

  - Optimize away the redundant ->lookup() to check for an
    existing file when we know that we're doing NFSv3 exclusive
    create.

  - Optimize away all ->permission() checks other than those for
    path traversal, open(), and sys_access().

22 years ago[PATCH] Pass 'nameidata' to ->permission()
Trond Myklebust [Fri, 4 Jul 2003 05:06:43 +0000 (22:06 -0700)]
[PATCH] Pass 'nameidata' to ->permission()

   - Make the VFS pass the struct nameidata as an optional parameter
     to the permission() inode operation.

   - Patch may_create()/may_open() so it passes the struct nameidata from
     vfs_create()/open_namei() as an argument to permission().

   - Add an intent flag for the sys_access() function.

22 years ago[PATCH] Pass 'nameidata' to ->create()
Trond Myklebust [Fri, 4 Jul 2003 05:06:21 +0000 (22:06 -0700)]
[PATCH] Pass 'nameidata' to ->create()

  - Make the VFS pass the struct nameidata as an optional argument
    to the create inode operation.
  - Patch vfs_create() to take a struct nameidata as an optional
    argument.

22 years ago[PATCH] Add open intent information to the 'struct nameidata'
Trond Myklebust [Fri, 4 Jul 2003 05:06:06 +0000 (22:06 -0700)]
[PATCH] Add open intent information to the 'struct nameidata'

 - Add open intent information to the 'struct nameidata'.
 - Pass the struct nameidata as an optional parameter to the
   lookup() inode operation.
 - Pass the struct nameidata as an optional parameter to the
   d_revalidate() dentry operation.
 - Make link_path_walk() set the LOOKUP_CONTINUE flag in nd->flags instead
   of passing it as an extra parameter to d_revalidate().
 - Make open_namei(), and sys_uselib() set the open()/create() intent
   data.

22 years agoMerge bk://stop.crashing.org/linux-2.5-misc
Paul Mackerras [Thu, 3 Jul 2003 20:44:48 +0000 (06:44 +1000)]
Merge bk://stop.crashing.org/linux-2.5-misc
into samba.org:/home/paulus/kernel/for-linus-ppc

22 years agoMerge bk://stop.crashing.org/linux-2.5-obsolete
Paul Mackerras [Thu, 3 Jul 2003 20:35:08 +0000 (06:35 +1000)]
Merge bk://stop.crashing.org/linux-2.5-obsolete
into samba.org:/home/paulus/kernel/for-linus-ppc

22 years agoMerge samba.org:/home/paulus/kernel/linux-2.5
Paul Mackerras [Thu, 3 Jul 2003 20:01:21 +0000 (06:01 +1000)]
Merge samba.org:/home/paulus/kernel/linux-2.5
into samba.org:/home/paulus/kernel/for-linus-ppc

22 years ago[PATCH] fix via irq routing
Jeff Garzik [Thu, 3 Jul 2003 13:23:39 +0000 (06:23 -0700)]
[PATCH] fix via irq routing
Via irq routing has a funky PIRQD location.  I checked my datasheets
and, yep, this is correct all the way back to via686a.
This bug existed for _ages_.  I wonder if I created it, even...

22 years agoMerge bk://kernel.bkbits.net/gregkh/linux/pci-2.5
Linus Torvalds [Thu, 3 Jul 2003 12:21:18 +0000 (05:21 -0700)]
Merge bk://kernel.bkbits.net/gregkh/linux/pci-2.5
into home.osdl.org:/home/torvalds/v2.5/linux

22 years agoRe-organize "ext3_get_inode_loc()" and make it easier to
Linus Torvalds [Thu, 3 Jul 2003 12:20:52 +0000 (05:20 -0700)]
Re-organize "ext3_get_inode_loc()" and make it easier to
follow by splitting it into two functions: one that calculates
the position, and the other that actually reads the inode
block off the disk.

22 years agoAdd an asynchronous buffer read-ahead facility. Nobody
Linus Torvalds [Thu, 3 Jul 2003 11:54:42 +0000 (04:54 -0700)]
Add an asynchronous buffer read-ahead facility. Nobody
uses it for now, but I needed it for some tuning tests,
and it is potentially useful for others.

22 years agoMerge kroah.com:/home/linux/BK/bleed-2.5
Greg Kroah-Hartman [Thu, 3 Jul 2003 10:52:16 +0000 (03:52 -0700)]
Merge kroah.com:/home/linux/BK/bleed-2.5
into kroah.com:/home/linux/BK/pci-2.5

22 years agodriver core: add my copyright to class.c
Greg Kroah-Hartman [Thu, 3 Jul 2003 10:51:08 +0000 (03:51 -0700)]
driver core: add my copyright to class.c

22 years ago[PATCH] driver core: added class_device_rename()
Greg Kroah-Hartman [Thu, 3 Jul 2003 10:43:49 +0000 (03:43 -0700)]
[PATCH] driver core: added class_device_rename()
Based on a patch written by Dan Aloni <da-x@gmx.net>

22 years ago[PATCH] kobject: add kobject_rename()
Greg Kroah-Hartman [Thu, 3 Jul 2003 10:43:34 +0000 (03:43 -0700)]
[PATCH] kobject: add kobject_rename()
Based on a patch written by Dan Aloni <da-x@gmx.net>

22 years ago[PATCH] sysfs: add sysfs_rename_dir()
Greg Kroah-Hartman [Thu, 3 Jul 2003 10:43:18 +0000 (03:43 -0700)]
[PATCH] sysfs: add sysfs_rename_dir()
Based on a patch written by Dan Aloni <da-x@gmx.net>

22 years ago[PATCH] jiffies include fix
John Stultz [Thu, 3 Jul 2003 09:39:18 +0000 (02:39 -0700)]
[PATCH] jiffies include fix
This patch fixes a bad declaration of jiffies in timer_tsc.c and
timer_cyclone.c, replacing it with the proper usage of jiffies.h.
Caught by gregkh.

22 years ago[PATCH] SYSFS: add module referencing to sysfs attribute files.
Greg Kroah-Hartman [Thu, 3 Jul 2003 09:28:49 +0000 (02:28 -0700)]
[PATCH] SYSFS: add module referencing to sysfs attribute files.

22 years agoMerge bk://linux-pnp.bkbits.net/pnp-2.5
Linus Torvalds [Thu, 3 Jul 2003 09:10:26 +0000 (02:10 -0700)]
Merge bk://linux-pnp.bkbits.net/pnp-2.5
into home.osdl.org:/home/torvalds/v2.5/linux

22 years ago[PNP] Fix manual resource setting API
Adam Belay [Thu, 3 Jul 2003 15:45:44 +0000 (15:45 +0000)]
[PNP] Fix manual resource setting API

This patch corrects a trivial thinko in the manual resource api.

22 years ago[PNP] Allow resource auto config to assign disabled resources
Adam Belay [Thu, 3 Jul 2003 15:42:36 +0000 (15:42 +0000)]
[PNP] Allow resource auto config to assign disabled resources

This patch updates the resource manager so that it actually assigns
disabled resources when they are requested by the device.

22 years ago[PNP] Handle Disabled Resources Properly
Adam Belay [Thu, 3 Jul 2003 15:39:09 +0000 (15:39 +0000)]
[PNP] Handle Disabled Resources Properly

Some devices will allow for individual resources to be disabled,
even when the device as a whole is active.  The current PnP
resource manager is not handling this situation properly.  This
patch corrects the issue by detecting disabled resources and then
flagging them. The pnp layer will now skip over any disabled
resources.  Interface updates have also been included so that we
can properly display resource tables when a resource is disabled.

Also note that a new flag "IORESOURCE_DISABLED" has been added to
linux/ioports.h.

22 years ago[PATCH] sysfs: change print() to pr_debug() to not annoy everyone.
Greg Kroah-Hartman [Thu, 3 Jul 2003 09:06:08 +0000 (02:06 -0700)]
[PATCH] sysfs: change print() to pr_debug() to not annoy everyone.

22 years ago[PATCH] Driver Core: fix firmware binary files
Matthew Wilcox [Thu, 3 Jul 2003 08:52:29 +0000 (01:52 -0700)]
[PATCH] Driver Core: fix firmware binary files
Fixes the sysfs binary file bug.

22 years ago[PATCH] PCI config space in sysfs
Matthew Wilcox [Thu, 3 Jul 2003 08:52:14 +0000 (01:52 -0700)]
[PATCH] PCI config space in sysfs
 - Fix a couple of bugs in sysfs's handling of binary files (my fault).
 - Implement pci config space reads and writes in sysfs

22 years ago[PATCH] PCI: arch/i386/pci/legacy.c: use raw_pci_ops
Matthew Wilcox [Thu, 3 Jul 2003 08:51:59 +0000 (01:51 -0700)]
[PATCH] PCI: arch/i386/pci/legacy.c: use raw_pci_ops
Make pcibios_fixup_peer_bridges() use raw_pci_ops directly instead of
faking pci_bus and pci_dev.

22 years ago[PATCH] PCI: arch/i386/pci/irq.c should use pci_find_bus
Matthew Wilcox [Thu, 3 Jul 2003 08:51:45 +0000 (01:51 -0700)]
[PATCH] PCI: arch/i386/pci/irq.c should use pci_find_bus
Use pci_find_bus rather than relying on the return value of pci_scan_bus.

22 years ago[PATCH] PCI: Remove pci_bus_exists
Matthew Wilcox [Thu, 3 Jul 2003 08:51:30 +0000 (01:51 -0700)]
[PATCH] PCI: Remove pci_bus_exists
Convert all callers of pci_bus_exists() to call pci_find_bus() instead.
Since all callers of pci_find_bus() are __init or __devinit, mark it as
__devinit too.

22 years ago[PATCH] PCI: pci_find_bus needs a domain
Matthew Wilcox [Thu, 3 Jul 2003 08:51:15 +0000 (01:51 -0700)]
[PATCH] PCI: pci_find_bus needs a domain
Give pci_find_bus a domain argument and move its declaration to <linux/pci.h>

22 years ago[PATCH] PCI: arch/i386/pci/direct.c can use __init, not __devinit
Matthew Wilcox [Thu, 3 Jul 2003 08:50:59 +0000 (01:50 -0700)]
[PATCH] PCI: arch/i386/pci/direct.c can use __init, not __devinit
pci_sanity_check() is only called from functions marked __init, so it
can be __init too.

22 years ago[PATCH] PCI: Improve documentation
Matthew Wilcox [Thu, 3 Jul 2003 08:50:39 +0000 (01:50 -0700)]
[PATCH] PCI: Improve documentation
Fix some grammar problems
Add a note about Fast Back to Back support
Change the slot_name recommendation to pci_name().

22 years agoThe sbp2 driver needs <linux/pci.h>, but didn't include it. It apparently
Linus Torvalds [Wed, 2 Jul 2003 17:39:31 +0000 (10:39 -0700)]
The sbp2 driver needs <linux/pci.h>, but didn't include it. It apparently
used to work due to some random magic indirect include, but broke lately.

Do the obvious fix.

22 years ago[PATCH] Make ksoftirqd a normal per-cpu variable.
Rusty Russell [Wed, 2 Jul 2003 17:38:29 +0000 (10:38 -0700)]
[PATCH] Make ksoftirqd a normal per-cpu variable.

This moves the ksoftirqd pointers out of the irq_stat struct, and uses a
normal per-cpu variable.  It's not that time critical, nor referenced in
assembler.  This moves us closer to making irq_stat a per-cpu variable.

Because some archs have hardcoded asm references to offsets in this
structure, I haven't touched non-x86.  The __ksoftirqd_task field is
unused in other archs, too.

22 years ago[PATCH] Remove unused __syscall_count
Rusty Russell [Wed, 2 Jul 2003 17:38:21 +0000 (10:38 -0700)]
[PATCH] Remove unused __syscall_count

Noone seems to use __syscall_count.  Remove the field from i386
irq_cpustat_t struct, and the generic accessor macros.

Because some archs have hardcoded asm references to offsets in this
structure, I haven't touched non-x86, but doing so is usually
trivial.

22 years ago[PATCH] Per-cpu variable in mm/slab.c
Rusty Russell [Wed, 2 Jul 2003 17:32:57 +0000 (10:32 -0700)]
[PATCH] Per-cpu variable in mm/slab.c

Rather trivial conversion.  Tested on SMP.

22 years ago[PATCH] Remove cpu arg from cpu_raise_irq
Rusty Russell [Wed, 2 Jul 2003 17:32:49 +0000 (10:32 -0700)]
[PATCH] Remove cpu arg from cpu_raise_irq

The function cpu_raise_softirq() takes a softirq number, and a cpu number,
but cannot be used with cpu != smp_processor_id(), because there's no
locking around the pending softirq lists.  Since noone does this, remove
that arg.

As per Linus' suggestion, names changed:
raise_softirq(int nr)
cpu_raise_softirq(int cpu, int nr) -> raise_softirq_irqoff(int nr)
__cpu_raise_softirq(int cpu, int nr) -> __raise_softirq_irqoff(int nr)

22 years ago[PATCH] e100 use-after-free fix
Andrew Morton [Wed, 2 Jul 2003 15:50:27 +0000 (08:50 -0700)]
[PATCH] e100 use-after-free fix

I though Scott had recently merged this but it seems not.  We'll be
needing this patch if you merge Manfred's page unmapping debug patch.

22 years ago[PATCH] Fix cciss hang
Andrew Morton [Wed, 2 Jul 2003 15:50:19 +0000 (08:50 -0700)]
[PATCH] Fix cciss hang

From: Jens Axboe <axboe@suse.de>

It fixes a hang when performing large I/O's.  Has been tested and acked by
the maintainer, "Wiran, Francis" <francis.wiran@hp.com>.

22 years ago[PATCH] Set limits on CONFIG_LOG_BUF_SHIFT
Andrew Morton [Wed, 2 Jul 2003 15:50:11 +0000 (08:50 -0700)]
[PATCH] Set limits on CONFIG_LOG_BUF_SHIFT

From: bert hubert <ahu@ds9a.nl>

Attached patch adds a range check to LOG_BUF_SHIFT and clarifies the
configuration somewhat.  I managed to build a non-booting kernel because I
thought 64 was a nice power of two, which lead to the kernel blocking when
it tried to actually use or allocate a 2^64 buffer.

22 years ago[PATCH] ext3: fix journal_release_buffer() race
Andrew Morton [Wed, 2 Jul 2003 15:50:04 +0000 (08:50 -0700)]
[PATCH] ext3: fix journal_release_buffer() race

CPU0 CPU1

journal_get_write_access(bh)
 (Add buffer to t_reserved_list)

journal_get_write_access(bh)
 (It's already on t_reserved_list:
  nothing to do)

 (We decide we don't want to
  journal the buffer after all)
journal_release_buffer()
 (It gets pulled off the transaction)

journal_dirty_metadata()
 (The buffer isn't on the reserved
  list!  The kernel explodes)

Simple fix: just leave the buffer on t_reserved_list in
journal_release_buffer().  If nobody ends up claiming the buffer then it will
get thrown away at start of transaction commit.

22 years ago[PATCH] fix double mmdrop() on exec path
Andrew Morton [Wed, 2 Jul 2003 15:49:50 +0000 (08:49 -0700)]
[PATCH] fix double mmdrop() on exec path

If load_elf_binary() (and the other binary handlers) fail after
flush_old_exec() (for example, in setup_arg_pages()) then do_execve() will go
through and do mmdrop(bprm.mm).

But bprm.mm is now current->mm.  We've just freed the current process's mm.
The kernel dies in a most ghastly manner.

Fix that up by nulling out bprm.mm in flush_old_exec(), at the point where we
consumed the mm.  Handle the null pointer in the do_execve() error path.

Also: don't open-code free_arg_pages() in do_execve(): call it instead.

22 years ago[PATCH] ext2: inode allocation race fix
Andrew Morton [Wed, 2 Jul 2003 15:49:43 +0000 (08:49 -0700)]
[PATCH] ext2: inode allocation race fix

ext2's inode allocator will call find_group_orlov(), which will return a
suitable blockgroup in which the inode should be allocated.  But by the time
we actually try to allocate an inode in the blockgroup, other CPUs could have
used them all up.

ext2 will bogusly fail with "ext2_new_inode: Free inodes count corrupted in
group NN".

To fix this we just advance onto the next blockgroup if the rare race
happens.  If we've scanned all blockgroups then return -ENOSPC.

(This is a bit inaccurate: after we've scanned all blockgroups, there may
still be available inodes due to inode freeing activity in other blockgroups.
 This cannot be fixed without fs-wide locking.  The effect is a slightly
early ENOSPC in a nearly-full filesystem).

22 years ago[PATCH] Security hook for vm_enough_memory
Andrew Morton [Wed, 2 Jul 2003 15:49:35 +0000 (08:49 -0700)]
[PATCH] Security hook for vm_enough_memory

From: Stephen Smalley <sds@epoch.ncsc.mil>

This patch against 2.5.73 replaces vm_enough_memory with a security hook
per Alan Cox's suggestion so that security modules can completely replace
the logic if desired.

Note that the patch changes the interface to follow the convention of the
other security hooks, i.e.  return 0 if ok or -errno on failure (-ENOMEM in
this case) rather than returning a boolean.  It also exports various
variables and functions required for the vm_enough_memory logic.

22 years ago[PATCH] cleanup and generalise lowmem_page_address
Andrew Morton [Wed, 2 Jul 2003 15:49:26 +0000 (08:49 -0700)]
[PATCH] cleanup and generalise lowmem_page_address

From: William Lee Irwin III <wli@holomorphy.com>

This patch allows architectures to micro-optimize lowmem_page_address() at
their whims.  Roman Zippel originally wrote and/or suggested this back when
dependencies on page->virtual existing were being shaken out.  That's
long-settled, so it's fine to do this now.

22 years ago[PATCH] fix lost-tick compensation corner-case
Andrew Morton [Wed, 2 Jul 2003 15:49:14 +0000 (08:49 -0700)]
[PATCH] fix lost-tick compensation corner-case

From: john stultz <johnstul@us.ibm.com>

This patch catches a corner case in the lost-tick compensation code.

There is a check to see if we overflowed between reads of the two time
sources, however should the high res time source be slightly slower then
what we calibrated, its possible to trigger this code when no ticks have
been lost.

This patch adds an extra check to insure we have seen more then one tick
before we check for this overflow.  This seems to resolve the remaining
"time doubling" issues that I've seen reported.

22 years ago[PATCH] fix lost_tick detector for speedstep
Andrew Morton [Wed, 2 Jul 2003 15:49:07 +0000 (08:49 -0700)]
[PATCH] fix lost_tick detector for speedstep

From: john stultz <johnstul@us.ibm.com>

The patch tries to resolve issues caused by running the TSC based lost
tick compensation code on CPUs that change frequency (speedstep, etc).

Should the CPU be in slow mode when calibrate_tsc() executes, the kernel
will assume we have so many cycles per tick.  Later when the cpu speeds up,
the kernel will start noting that too many cycles have past since the last
interrupt.  Since this can occasionally happen, the lost tick compensation
code then tries to fix this by incrementing jiffies.  Thus every tick we
end up incrementing jiffies many times, causing timers to expire too
quickly and time to rush ahead.

This patch detects when there has been 100 consecutive interrupts where we
had to compensate for lost ticks.  If this occurs, we spit out a warning
and fall back to using the PIT as a time source.

I've tested this on my speedstep enabled laptop with success, and others
laptop users seeing this problem have reported it works for them.  Also to
ensure we don't fall back to the slower PIT too quickly, I tested the code
on a system I have that looses ~30 ticks about every second and it can
still manage to use the TSC as a good time source.

This solves most of the "time doubling" problems seen on laptops.
Additionally this revision has been modified to use the cleanups made in
rename-timer_A1.

22 years ago[PATCH] timer renaming and cleanups
Andrew Morton [Wed, 2 Jul 2003 15:48:59 +0000 (08:48 -0700)]
[PATCH] timer renaming and cleanups

From: john stultz <johnstul@us.ibm.com>

This renames the bad "timer" variable to "cur_timer" and moves externs to
.h files.

22 years ago[PATCH] Report detached thread exit to the debugger
Andrew Morton [Wed, 2 Jul 2003 15:48:52 +0000 (08:48 -0700)]
[PATCH] Report detached thread exit to the debugger

From: Daniel Jacobowitz <dan@debian.org>

Right now, CLONE_DETACHED threads silently vanish from GDB's sight when
they exit.  This patch lets the thread report its exit to the debugger, and
then be auto-reaped as soon as it is collected, instead of being reaped as
soon as it exits and not reported at all.

GDB works either way, but this is more correct and will be useful for some
later GDB patches.

22 years ago[PATCH] Make CONFIG_TC35815 depend on CONFIG_TOSHIBA_JMR3927
Andrew Morton [Wed, 2 Jul 2003 15:48:41 +0000 (08:48 -0700)]
[PATCH] Make CONFIG_TC35815 depend on CONFIG_TOSHIBA_JMR3927

From: Adrian Bunk <bunk@fs.tum.de>

I got an error at the final linking with CONFIG_TC35815 enabled since
the variables tc_readl and tc_writel are not available.

The only place where they are defined is arch/mips/pci/ops-jmr3927.c.

22 years ago[PATCH] block_llseek(): remove lock_kernel()
Andrew Morton [Wed, 2 Jul 2003 15:48:33 +0000 (08:48 -0700)]
[PATCH] block_llseek(): remove lock_kernel()

Replace it with the blockdev inode's i_sem.  And we only really need that for
atomic access to file->f_pos.

22 years ago[PATCH] remove lock_kernel() from file_ops.flush()
Andrew Morton [Wed, 2 Jul 2003 15:48:26 +0000 (08:48 -0700)]
[PATCH] remove lock_kernel() from file_ops.flush()

Rework the file_ops.flush() API sothat it is no longer called under
lock_kernel().  Push lock_kernel() down to all impementations except CIFS,
which doesn't want it.

22 years ago[PATCH] procfs: remove some unneeded lock_kernel()s
Andrew Morton [Wed, 2 Jul 2003 15:48:18 +0000 (08:48 -0700)]
[PATCH] procfs: remove some unneeded lock_kernel()s

From: William Lee Irwin III <wli@holomorphy.com>

Remove spurious BKL acquisitions in /proc/.  The BKL is not required to
access nr_threads for reporting, and get_locks_status() takes it
internally, wrapping all operations with it.

22 years ago[PATCH] nommu vmtruncate: remove lock_kernel()
Andrew Morton [Wed, 2 Jul 2003 15:48:06 +0000 (08:48 -0700)]
[PATCH] nommu vmtruncate: remove lock_kernel()

lock_kernel() need not be held across truncate.