Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6

Conflicts:

	include/asm-x86/statfs.h
This commit is contained in:
David Woodhouse
2008-10-13 17:13:56 +01:00
4459 changed files with 219953 additions and 116651 deletions
+2
View File
@@ -96,4 +96,6 @@ Tejun Heo <htejun@gmail.com>
Thomas Graf <tgraf@suug.ch> Thomas Graf <tgraf@suug.ch>
Tony Luck <tony.luck@intel.com> Tony Luck <tony.luck@intel.com>
Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com> Tsuneo Yoshioka <Tsuneo.Yoshioka@f-secure.com>
Uwe Kleine-König <Uwe.Kleine-Koenig@digi.com>
Uwe Kleine-König <ukleinek@informatik.uni-freiburg.de>
Valdis Kletnieks <Valdis.Kletnieks@vt.edu> Valdis Kletnieks <Valdis.Kletnieks@vt.edu>
-2
View File
@@ -251,8 +251,6 @@ mono.txt
- how to execute Mono-based .NET binaries with the help of BINFMT_MISC. - how to execute Mono-based .NET binaries with the help of BINFMT_MISC.
moxa-smartio moxa-smartio
- file with info on installing/using Moxa multiport serial driver. - file with info on installing/using Moxa multiport serial driver.
mtrr.txt
- how to use PPro Memory Type Range Registers to increase performance.
mutex-design.txt mutex-design.txt
- info on the generic mutex subsystem. - info on the generic mutex subsystem.
namespaces/ namespaces/
@@ -0,0 +1,27 @@
What: /sys/firmware/sgi_uv/
Date: August 2008
Contact: Russ Anderson <rja@sgi.com>
Description:
The /sys/firmware/sgi_uv directory contains information
about the SGI UV platform.
Under that directory are a number of files:
partition_id
coherence_id
The partition_id entry contains the partition id.
SGI UV systems can be partitioned into multiple physical
machines, which each partition running a unique copy
of the operating system. Each partition will have a unique
partition id. To display the partition id, use the command:
cat /sys/firmware/sgi_uv/partition_id
The coherence_id entry contains the coherence id.
A partitioned SGI UV system can have one or more coherence
domain. The coherence id indicates which coherence domain
this partition is in. To display the coherence id, use the
command:
cat /sys/firmware/sgi_uv/coherence_id
+26
View File
@@ -0,0 +1,26 @@
What: /sys/class/gpio/
Date: July 2008
KernelVersion: 2.6.27
Contact: David Brownell <dbrownell@users.sourceforge.net>
Description:
As a Kconfig option, individual GPIO signals may be accessed from
userspace. GPIOs are only made available to userspace by an explicit
"export" operation. If a given GPIO is not claimed for use by
kernel code, it may be exported by userspace (and unexported later).
Kernel code may export it for complete or partial access.
GPIOs are identified as they are inside the kernel, using integers in
the range 0..INT_MAX. See Documentation/gpio.txt for more information.
/sys/class/gpio
/export ... asks the kernel to export a GPIO to userspace
/unexport ... to return a GPIO to the kernel
/gpioN ... for each exported GPIO #N
/value ... always readable, writes fail for input GPIOs
/direction ... r/w as: in, out (default low); write: high, low
/gpiochipN ... for each gpiochip; #N is its first GPIO
/base ... (r/o) same as N
/label ... (r/o) descriptive, not necessarily unique
/ngpio ... (r/o) number of GPIOs; numbered N to N + (ngpio - 1)
+1 -1
View File
@@ -337,7 +337,7 @@ With scatterlists, you use the resulting mapping like this:
int i, count = dma_map_sg(dev, sglist, nents, direction); int i, count = dma_map_sg(dev, sglist, nents, direction);
struct scatterlist *sg; struct scatterlist *sg;
for (i = 0, sg = sglist; i < count; i++, sg++) { for_each_sg(sglist, sg, count, i) {
hw_address[i] = sg_dma_address(sg); hw_address[i] = sg_dma_address(sg);
hw_len[i] = sg_dma_len(sg); hw_len[i] = sg_dma_len(sg);
} }
+1 -1
View File
@@ -740,7 +740,7 @@ failure can be determined by:
dma_addr_t dma_handle; dma_addr_t dma_handle;
dma_handle = pci_map_single(pdev, addr, size, direction); dma_handle = pci_map_single(pdev, addr, size, direction);
if (pci_dma_mapping_error(dma_handle)) { if (pci_dma_mapping_error(pdev, dma_handle)) {
/* /*
* reduce current DMA mapping usage, * reduce current DMA mapping usage,
* delay and try again later or * delay and try again later or
+5
View File
@@ -283,6 +283,7 @@ X!Earch/x86/kernel/mca_32.c
<chapter id="security"> <chapter id="security">
<title>Security Framework</title> <title>Security Framework</title>
!Isecurity/security.c !Isecurity/security.c
!Esecurity/inode.c
</chapter> </chapter>
<chapter id="audit"> <chapter id="audit">
@@ -364,6 +365,10 @@ X!Edrivers/pnp/system.c
!Eblock/blk-barrier.c !Eblock/blk-barrier.c
!Eblock/blk-tag.c !Eblock/blk-tag.c
!Iblock/blk-tag.c !Iblock/blk-tag.c
!Eblock/blk-integrity.c
!Iblock/blktrace.c
!Iblock/genhd.c
!Eblock/genhd.c
</chapter> </chapter>
<chapter id="chrdev"> <chapter id="chrdev">
+4 -8
View File
@@ -145,7 +145,6 @@ usage should require reading the full document.
this though and the recommendation to allow only a single this though and the recommendation to allow only a single
interface in STA mode at first! interface in STA mode at first!
</para> </para>
!Finclude/net/mac80211.h ieee80211_if_types
!Finclude/net/mac80211.h ieee80211_if_init_conf !Finclude/net/mac80211.h ieee80211_if_init_conf
!Finclude/net/mac80211.h ieee80211_if_conf !Finclude/net/mac80211.h ieee80211_if_conf
</chapter> </chapter>
@@ -177,8 +176,7 @@ usage should require reading the full document.
<title>functions/definitions</title> <title>functions/definitions</title>
!Finclude/net/mac80211.h ieee80211_rx_status !Finclude/net/mac80211.h ieee80211_rx_status
!Finclude/net/mac80211.h mac80211_rx_flags !Finclude/net/mac80211.h mac80211_rx_flags
!Finclude/net/mac80211.h ieee80211_tx_control !Finclude/net/mac80211.h ieee80211_tx_info
!Finclude/net/mac80211.h ieee80211_tx_status_flags
!Finclude/net/mac80211.h ieee80211_rx !Finclude/net/mac80211.h ieee80211_rx
!Finclude/net/mac80211.h ieee80211_rx_irqsafe !Finclude/net/mac80211.h ieee80211_rx_irqsafe
!Finclude/net/mac80211.h ieee80211_tx_status !Finclude/net/mac80211.h ieee80211_tx_status
@@ -189,12 +187,11 @@ usage should require reading the full document.
!Finclude/net/mac80211.h ieee80211_ctstoself_duration !Finclude/net/mac80211.h ieee80211_ctstoself_duration
!Finclude/net/mac80211.h ieee80211_generic_frame_duration !Finclude/net/mac80211.h ieee80211_generic_frame_duration
!Finclude/net/mac80211.h ieee80211_get_hdrlen_from_skb !Finclude/net/mac80211.h ieee80211_get_hdrlen_from_skb
!Finclude/net/mac80211.h ieee80211_get_hdrlen !Finclude/net/mac80211.h ieee80211_hdrlen
!Finclude/net/mac80211.h ieee80211_wake_queue !Finclude/net/mac80211.h ieee80211_wake_queue
!Finclude/net/mac80211.h ieee80211_stop_queue !Finclude/net/mac80211.h ieee80211_stop_queue
!Finclude/net/mac80211.h ieee80211_start_queues
!Finclude/net/mac80211.h ieee80211_stop_queues
!Finclude/net/mac80211.h ieee80211_wake_queues !Finclude/net/mac80211.h ieee80211_wake_queues
!Finclude/net/mac80211.h ieee80211_stop_queues
</sect1> </sect1>
</chapter> </chapter>
@@ -230,8 +227,7 @@ usage should require reading the full document.
<title>Multiple queues and QoS support</title> <title>Multiple queues and QoS support</title>
<para>TBD</para> <para>TBD</para>
!Finclude/net/mac80211.h ieee80211_tx_queue_params !Finclude/net/mac80211.h ieee80211_tx_queue_params
!Finclude/net/mac80211.h ieee80211_tx_queue_stats_data !Finclude/net/mac80211.h ieee80211_tx_queue_stats
!Finclude/net/mac80211.h ieee80211_tx_queue
</chapter> </chapter>
<chapter id="AP"> <chapter id="AP">
+2 -1
View File
@@ -77,7 +77,8 @@ documentation files are also added which explain how to use the feature.
When a kernel change causes the interface that the kernel exposes to When a kernel change causes the interface that the kernel exposes to
userspace to change, it is recommended that you send the information or userspace to change, it is recommended that you send the information or
a patch to the manual pages explaining the change to the manual pages a patch to the manual pages explaining the change to the manual pages
maintainer at mtk.manpages@gmail.com. maintainer at mtk.manpages@gmail.com, and CC the list
linux-api@vger.kernel.org.
Here is a list of files that are in the kernel source tree that are Here is a list of files that are in the kernel source tree that are
required reading: required reading:
+1 -1
View File
@@ -210,7 +210,7 @@ over a rather long period of time, but improvements are always welcome!
number of updates per grace period. number of updates per grace period.
9. All RCU list-traversal primitives, which include 9. All RCU list-traversal primitives, which include
rcu_dereference(), list_for_each_rcu(), list_for_each_entry_rcu(), rcu_dereference(), list_for_each_entry_rcu(),
list_for_each_continue_rcu(), and list_for_each_safe_rcu(), list_for_each_continue_rcu(), and list_for_each_safe_rcu(),
must be either within an RCU read-side critical section or must be either within an RCU read-side critical section or
must be protected by appropriate update-side locks. RCU must be protected by appropriate update-side locks. RCU
+8 -8
View File
@@ -29,9 +29,9 @@ release_referenced() delete()
} }
If this list/array is made lock free using RCU as in changing the If this list/array is made lock free using RCU as in changing the
write_lock() in add() and delete() to spin_lock and changing read_lock write_lock() in add() and delete() to spin_lock() and changing read_lock()
in search_and_reference to rcu_read_lock(), the atomic_get in in search_and_reference() to rcu_read_lock(), the atomic_inc() in
search_and_reference could potentially hold reference to an element which search_and_reference() could potentially hold reference to an element which
has already been deleted from the list/array. Use atomic_inc_not_zero() has already been deleted from the list/array. Use atomic_inc_not_zero()
in this scenario as follows: in this scenario as follows:
@@ -40,20 +40,20 @@ add() search_and_reference()
{ { { {
alloc_object rcu_read_lock(); alloc_object rcu_read_lock();
... search_for_element ... search_for_element
atomic_set(&el->rc, 1); if (atomic_inc_not_zero(&el->rc)) { atomic_set(&el->rc, 1); if (!atomic_inc_not_zero(&el->rc)) {
write_lock(&list_lock); rcu_read_unlock(); spin_lock(&list_lock); rcu_read_unlock();
return FAIL; return FAIL;
add_element } add_element }
... ... ... ...
write_unlock(&list_lock); rcu_read_unlock(); spin_unlock(&list_lock); rcu_read_unlock();
} } } }
3. 4. 3. 4.
release_referenced() delete() release_referenced() delete()
{ { { {
... write_lock(&list_lock); ... spin_lock(&list_lock);
if (atomic_dec_and_test(&el->rc)) ... if (atomic_dec_and_test(&el->rc)) ...
call_rcu(&el->head, el_free); delete_element call_rcu(&el->head, el_free); delete_element
... write_unlock(&list_lock); ... spin_unlock(&list_lock);
} ... } ...
if (atomic_dec_and_test(&el->rc)) if (atomic_dec_and_test(&el->rc))
call_rcu(&el->head, el_free); call_rcu(&el->head, el_free);
-2
View File
@@ -786,8 +786,6 @@ RCU pointer/list traversal:
list_for_each_entry_rcu list_for_each_entry_rcu
hlist_for_each_entry_rcu hlist_for_each_entry_rcu
list_for_each_rcu (to be deprecated in favor of
list_for_each_entry_rcu)
list_for_each_continue_rcu (to be deprecated in favor of new list_for_each_continue_rcu (to be deprecated in favor of new
list_for_each_entry_continue_rcu) list_for_each_entry_continue_rcu)
+27
View File
@@ -0,0 +1,27 @@
If you want to use SELinux, chances are you will want
to use the distro-provided policies, or install the
latest reference policy release from
http://oss.tresys.com/projects/refpolicy
However, if you want to install a dummy policy for
testing, you can do using 'mdp' provided under
scripts/selinux. Note that this requires the selinux
userspace to be installed - in particular you will
need checkpolicy to compile a kernel, and setfiles and
fixfiles to label the filesystem.
1. Compile the kernel with selinux enabled.
2. Type 'make' to compile mdp.
3. Make sure that you are not running with
SELinux enabled and a real policy. If
you are, reboot with selinux disabled
before continuing.
4. Run install_policy.sh:
cd scripts/selinux
sh install_policy.sh
Step 4 will create a new dummy policy valid for your
kernel, with a single selinux user, role, and type.
It will compile the policy, will set your SELINUXTYPE to
dummy in /etc/selinux/config, install the compiled policy
as 'dummy', and relabel your filesystem.
+2
View File
@@ -67,6 +67,8 @@ kernel patches.
19: All new userspace interfaces are documented in Documentation/ABI/. 19: All new userspace interfaces are documented in Documentation/ABI/.
See Documentation/ABI/README for more information. See Documentation/ABI/README for more information.
Patches that change userspace interfaces should be CCed to
linux-api@vger.kernel.org.
20: Check that it all passes `make headers_check'. 20: Check that it all passes `make headers_check'.
+10 -4
View File
@@ -30,12 +30,18 @@ write_expire (in ms)
Similar to read_expire mentioned above, but for writes. Similar to read_expire mentioned above, but for writes.
fifo_batch fifo_batch (number of requests)
---------- ----------
When a read request expires its deadline, we must move some requests from Requests are grouped into ``batches'' of a particular data direction (read or
the sorted io scheduler list to the block device dispatch queue. fifo_batch write) which are serviced in increasing sector order. To limit extra seeking,
controls how many requests we move. deadline expiries are only checked between batches. fifo_batch controls the
maximum number of requests per batch.
This parameter tunes the balance between per-request latency and aggregate
throughput. When low latency is the primary concern, smaller is better (where
a value of 1 yields first-come first-served behaviour). Increasing fifo_batch
generally improves throughput, at the cost of latency variation.
writes_starved (number of dispatches) writes_starved (number of dispatches)
+1 -2
View File
@@ -145,8 +145,7 @@ useful for reading photocds.
To play an audio CD, you should first unmount and remove any data To play an audio CD, you should first unmount and remove any data
CDROM. Any of the CDROM player programs should then work (workman, CDROM. Any of the CDROM player programs should then work (workman,
workbone, cdplayer, etc.). Lacking anything else, you could use the workbone, cdplayer, etc.).
cdtester program in Documentation/cdrom/sbpcd.
On a few drives, you can read digital audio directly using a program On a few drives, you can read digital audio directly using a program
such as cdda2wav. The only types of drive which I've heard support such as cdda2wav. The only types of drive which I've heard support
+4 -6
View File
@@ -35,11 +35,9 @@ Mailing List
------------ ------------
There is a CPU frequency changing CVS commit and general list where There is a CPU frequency changing CVS commit and general list where
you can report bugs, problems or submit patches. To post a message, you can report bugs, problems or submit patches. To post a message,
send an email to cpufreq@lists.linux.org.uk, to subscribe go to send an email to cpufreq@vger.kernel.org, to subscribe go to
http://lists.linux.org.uk/mailman/listinfo/cpufreq. Previous post to the http://vger.kernel.org/vger-lists.html#cpufreq and follow the
mailing list are available to subscribers at instructions there.
http://lists.linux.org.uk/mailman/private/cpufreq/.
Links Links
----- -----
@@ -50,7 +48,7 @@ how to access the CVS repository:
* http://cvs.arm.linux.org.uk/ * http://cvs.arm.linux.org.uk/
the CPUFreq Mailing list: the CPUFreq Mailing list:
* http://lists.linux.org.uk/mailman/listinfo/cpufreq * http://vger.kernel.org/vger-lists.html#cpufreq
Clock and voltage scaling for the SA-1100: Clock and voltage scaling for the SA-1100:
* http://www.lartmaker.nl/projects/scaling * http://www.lartmaker.nl/projects/scaling
+10 -8
View File
@@ -635,14 +635,16 @@ prior 'mems' setting, will not be moved.
There is an exception to the above. If hotplug functionality is used There is an exception to the above. If hotplug functionality is used
to remove all the CPUs that are currently assigned to a cpuset, to remove all the CPUs that are currently assigned to a cpuset,
then the kernel will automatically update the cpus_allowed of all then all the tasks in that cpuset will be moved to the nearest ancestor
tasks attached to CPUs in that cpuset to allow all CPUs. When memory with non-empty cpus. But the moving of some (or all) tasks might fail if
hotplug functionality for removing Memory Nodes is available, a cpuset is bound with another cgroup subsystem which has some restrictions
similar exception is expected to apply there as well. In general, on task attaching. In this failing case, those tasks will stay
the kernel prefers to violate cpuset placement, over starving a task in the original cpuset, and the kernel will automatically update
that has had all its allowed CPUs or Memory Nodes taken offline. User their cpus_allowed to allow all online CPUs. When memory hotplug
code should reconfigure cpusets to only refer to online CPUs and Memory functionality for removing Memory Nodes is available, a similar exception
Nodes when using hotplug to add or remove such resources. is expected to apply there as well. In general, the kernel prefers to
violate cpuset placement, over starving a task that has had all
its allowed CPUs or Memory Nodes taken offline.
There is a second exception to the above. GFP_ATOMIC requests are There is a second exception to the above. GFP_ATOMIC requests are
kernel internal allocations that must be satisfied, immediately. kernel internal allocations that must be satisfied, immediately.
@@ -6,6 +6,24 @@ be removed from this file.
--------------------------- ---------------------------
What: old static regulatory information and ieee80211_regdom module parameter
When: 2.6.29
Why: The old regulatory infrastructure has been replaced with a new one
which does not require statically defined regulatory domains. We do
not want to keep static regulatory domains in the kernel due to the
the dynamic nature of regulatory law and localization. We kept around
the old static definitions for the regulatory domains of:
* US
* JP
* EU
and used by default the US when CONFIG_WIRELESS_OLD_REGULATORY was
set. We also kept around the ieee80211_regdom module parameter in case
some applications were relying on it. Changing regulatory domains
can now be done instead by using nl80211, as is done with iw.
Who: Luis R. Rodriguez <lrodriguez@atheros.com>
---------------------------
What: dev->power.power_state What: dev->power.power_state
When: July 2007 When: July 2007
Why: Broken design for runtime control over driver power states, confusing Why: Broken design for runtime control over driver power states, confusing
@@ -232,6 +250,9 @@ What (Why):
- xt_mark match revision 0 - xt_mark match revision 0
(superseded by xt_mark match revision 1) (superseded by xt_mark match revision 1)
- xt_recent: the old ipt_recent proc dir
(superseded by /proc/net/xt_recent)
When: January 2009 or Linux 2.7.0, whichever comes first When: January 2009 or Linux 2.7.0, whichever comes first
Why: Superseded by newer revisions or modules Why: Superseded by newer revisions or modules
Who: Jan Engelhardt <jengelh@computergmbh.de> Who: Jan Engelhardt <jengelh@computergmbh.de>
@@ -322,3 +343,11 @@ Why: Accounting can now be enabled/disabled without kernel recompilation.
controlled by a kernel/module/sysfs/sysctl parameter. controlled by a kernel/module/sysfs/sysctl parameter.
Who: Krzysztof Piotr Oledzki <ole@ans.pl> Who: Krzysztof Piotr Oledzki <ole@ans.pl>
---------------------------
What: ide-scsi (BLK_DEV_IDESCSI)
When: 2.6.29
Why: The 2.6 kernel supports direct writing to ide CD drives, which
eliminates the need for ide-scsi. The new method is more
efficient in every way.
Who: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
+4 -11
View File
@@ -144,8 +144,8 @@ prototypes:
void (*kill_sb) (struct super_block *); void (*kill_sb) (struct super_block *);
locking rules: locking rules:
may block BKL may block BKL
get_sb yes yes get_sb yes no
kill_sb yes yes kill_sb yes no
->get_sb() returns error or 0 with locked superblock attached to the vfsmount ->get_sb() returns error or 0 with locked superblock attached to the vfsmount
(exclusive on ->s_umount). (exclusive on ->s_umount).
@@ -409,12 +409,12 @@ ioctl: yes (see below)
unlocked_ioctl: no (see below) unlocked_ioctl: no (see below)
compat_ioctl: no compat_ioctl: no
mmap: no mmap: no
open: maybe (see below) open: no
flush: no flush: no
release: no release: no
fsync: no (see below) fsync: no (see below)
aio_fsync: no aio_fsync: no
fasync: yes (see below) fasync: no
lock: yes lock: yes
readv: no readv: no
writev: no writev: no
@@ -431,13 +431,6 @@ For many filesystems, it is probably safe to acquire the inode
semaphore. Note some filesystems (i.e. remote ones) provide no semaphore. Note some filesystems (i.e. remote ones) provide no
protection for i_size so you will need to use the BKL. protection for i_size so you will need to use the BKL.
->open() locking is in-transit: big lock partially moved into the methods.
The only exception is ->open() in the instances of file_operations that never
end up in ->i_fop/->proc_fops, i.e. ones that belong to character devices
(chrdev_open() takes lock before replacing ->f_op and calling the secondary
method. As soon as we fix the handling of module reference counters all
instances of ->open() will be called without the BKL.
Note: ext2_release() was *the* source of contention on fs-intensive Note: ext2_release() was *the* source of contention on fs-intensive
loads and dropping BKL on ->release() helps to get rid of that (we still loads and dropping BKL on ->release() helps to get rid of that (we still
grab BKL for cases when we close a file that had been opened r/w, but that grab BKL for cases when we close a file that had been opened r/w, but that

Some files were not shown because too many files have changed in this diff Show More