You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
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:
@@ -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>
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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)
|
||||||
|
|
||||||
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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
@@ -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:
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
@@ -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'.
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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
Reference in New Issue
Block a user