Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a23e66f3 authored by David Vrabel's avatar David Vrabel
Browse files

Merge branch 'master' of...

Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6 into for-upstream
parents 04c470ad ede6f5ae
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ Christoph Hellwig <hch@lst.de>
Corey Minyard <minyard@acm.org>
David Brownell <david-b@pacbell.net>
David Woodhouse <dwmw2@shinybook.infradead.org>
Dmitry Eremin-Solenikov <dbaryshkov@gmail.com>
Domen Puncer <domen@coderock.org>
Douglas Gilbert <dougg@torque.net>
Ed L. Cashin <ecashin@coraid.com>
+50 −1
Original line number Diff line number Diff line
@@ -6,7 +6,6 @@ Description:
		internal state of the kernel memory blocks. Files could be
		added or removed dynamically to represent hot-add/remove
		operations.

Users:		hotplug memory add/remove tools
		https://w3.opensource.ibm.com/projects/powerpc-utils/

@@ -19,6 +18,56 @@ Description:
		This is useful for a user-level agent to determine
		identify removable sections of the memory before attempting
		potentially expensive hot-remove memory operation
Users:		hotplug memory remove tools
		https://w3.opensource.ibm.com/projects/powerpc-utils/

What:		/sys/devices/system/memory/memoryX/phys_device
Date:		September 2008
Contact:	Badari Pulavarty <pbadari@us.ibm.com>
Description:
		The file /sys/devices/system/memory/memoryX/phys_device
		is read-only and is designed to show the name of physical
		memory device.  Implementation is currently incomplete.

What:		/sys/devices/system/memory/memoryX/phys_index
Date:		September 2008
Contact:	Badari Pulavarty <pbadari@us.ibm.com>
Description:
		The file /sys/devices/system/memory/memoryX/phys_index
		is read-only and contains the section ID in hexadecimal
		which is equivalent to decimal X contained in the
		memory section directory name.

What:		/sys/devices/system/memory/memoryX/state
Date:		September 2008
Contact:	Badari Pulavarty <pbadari@us.ibm.com>
Description:
		The file /sys/devices/system/memory/memoryX/state
		is read-write.  When read, it's contents show the
		online/offline state of the memory section.  When written,
		root can toggle the the online/offline state of a removable
		memory section (see removable file description above)
		using the following commands.
		# echo online > /sys/devices/system/memory/memoryX/state
		# echo offline > /sys/devices/system/memory/memoryX/state

		For example, if /sys/devices/system/memory/memory22/removable
		contains a value of 1 and
		/sys/devices/system/memory/memory22/state contains the
		string "online" the following command can be executed by
		by root to offline that section.
		# echo offline > /sys/devices/system/memory/memory22/state
Users:		hotplug memory remove tools
		https://w3.opensource.ibm.com/projects/powerpc-utils/

What:		/sys/devices/system/node/nodeX/memoryY
Date:		September 2008
Contact:	Gary Hade <garyhade@us.ibm.com>
Description:
		When CONFIG_NUMA is enabled
		/sys/devices/system/node/nodeX/memoryY is a symbolic link that
		points to the corresponding /sys/devices/system/memory/memoryY
		memory section directory.  For example, the following symbolic
		link is created for memory section 9 on node0.
		/sys/devices/system/node/node0/memory9 -> ../../memory/memory9
+1 −1
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ mapped only for the time they are actually used and unmapped after the DMA
transfer.

The following API will work of course even on platforms where no such
hardware exists, see e.g. include/asm-i386/pci.h for how it is implemented on
hardware exists, see e.g. arch/x86/include/asm/pci.h for how it is implemented on
top of the virt_to_bus interface.

First of all, you should make sure
+99 −2
Original line number Diff line number Diff line
@@ -41,6 +41,12 @@ GPL version 2.
</abstract>

<revhistory>
	<revision>
	<revnumber>0.6</revnumber>
	<date>2008-12-05</date>
	<authorinitials>hjk</authorinitials>
	<revremark>Added description of portio sysfs attributes.</revremark>
	</revision>
	<revision>
	<revnumber>0.5</revnumber>
	<date>2008-05-22</date>
@@ -318,6 +324,54 @@ interested in translating it, please email me
offset = N * getpagesize();
</programlisting>

<para>
	Sometimes there is hardware with memory-like regions that can not be
	mapped with the technique described here, but there are still ways to
	access them from userspace. The most common example are x86 ioports.
	On x86 systems, userspace can access these ioports using
	<function>ioperm()</function>, <function>iopl()</function>,
	<function>inb()</function>, <function>outb()</function>, and similar
	functions.
</para>
<para>
	Since these ioport regions can not be mapped, they will not appear under
	<filename>/sys/class/uio/uioX/maps/</filename> like the normal memory
	described above. Without information about the port regions a hardware
	has to offer, it becomes difficult for the userspace part of the
	driver to find out which ports belong to which UIO device.
</para>
<para>
	To address this situation, the new directory
	<filename>/sys/class/uio/uioX/portio/</filename> was added. It only
	exists if the driver wants to pass information about one or more port
	regions to userspace. If that is the case, subdirectories named
	<filename>port0</filename>, <filename>port1</filename>, and so on,
	will appear underneath
	<filename>/sys/class/uio/uioX/portio/</filename>.
</para>
<para>
	Each <filename>portX/</filename> directory contains three read-only
	files that show start, size, and type of the port region:
</para>
<itemizedlist>
<listitem>
	<para>
	<filename>start</filename>: The first port of this region.
	</para>
</listitem>
<listitem>
	<para>
	<filename>size</filename>: The number of ports in this region.
	</para>
</listitem>
<listitem>
	<para>
	<filename>porttype</filename>: A string describing the type of port.
	</para>
</listitem>
</itemizedlist>


</sect1>
</chapter>

@@ -339,12 +393,12 @@ offset = N * getpagesize();

<itemizedlist>
<listitem><para>
<varname>char *name</varname>: Required. The name of your driver as
<varname>const char *name</varname>: Required. The name of your driver as
it will appear in sysfs. I recommend using the name of your module for this.
</para></listitem>

<listitem><para>
<varname>char *version</varname>: Required. This string appears in
<varname>const char *version</varname>: Required. This string appears in
<filename>/sys/class/uio/uioX/version</filename>.
</para></listitem>

@@ -355,6 +409,13 @@ mapping you need to fill one of the <varname>uio_mem</varname> structures.
See the description below for details.
</para></listitem>

<listitem><para>
<varname>struct uio_port port[ MAX_UIO_PORTS_REGIONS ]</varname>: Required
if you want to pass information about ioports to userspace. For each port
region you need to fill one of the <varname>uio_port</varname> structures.
See the description below for details.
</para></listitem>

<listitem><para>
<varname>long irq</varname>: Required. If your hardware generates an
interrupt, it's your modules task to determine the irq number during
@@ -448,6 +509,42 @@ Please do not touch the <varname>kobj</varname> element of
<varname>struct uio_mem</varname>! It is used by the UIO framework
to set up sysfs files for this mapping. Simply leave it alone.
</para>

<para>
Sometimes, your device can have one or more port regions which can not be
mapped to userspace. But if there are other possibilities for userspace to
access these ports, it makes sense to make information about the ports
available in sysfs. For each region, you have to set up a
<varname>struct uio_port</varname> in the <varname>port[]</varname> array.
Here's a description of the fields of <varname>struct uio_port</varname>:
</para>

<itemizedlist>
<listitem><para>
<varname>char *porttype</varname>: Required. Set this to one of the predefined
constants. Use <varname>UIO_PORT_X86</varname> for the ioports found in x86
architectures.
</para></listitem>

<listitem><para>
<varname>unsigned long start</varname>: Required if the port region is used.
Fill in the number of the first port of this region.
</para></listitem>

<listitem><para>
<varname>unsigned long size</varname>: Fill in the number of ports in this
region. If <varname>size</varname> is zero, the region is considered unused.
Note that you <emphasis>must</emphasis> initialize <varname>size</varname>
with zero for all unused regions.
</para></listitem>
</itemizedlist>

<para>
Please do not touch the <varname>portio</varname> element of
<varname>struct uio_port</varname>! It is used internally by the UIO
framework to set up sysfs files for this region. Simply leave it alone.
</para>

</sect1>

<sect1 id="adding_irq_handler">
+12 −0
Original line number Diff line number Diff line
@@ -315,3 +315,15 @@ When: 2.6.29 (ideally) or 2.6.30 (more likely)
Why:	Deprecated by the new (standard) device driver binding model. Use
	i2c_driver->probe() and ->remove() instead.
Who:	Jean Delvare <khali@linux-fr.org>

---------------------------

What:	SELinux "compat_net" functionality
When:	2.6.30 at the earliest
Why:	In 2.6.18 the Secmark concept was introduced to replace the "compat_net"
	network access control functionality of SELinux.  Secmark offers both
	better performance and greater flexibility than the "compat_net"
	mechanism.  Now that the major Linux distributions have moved to
	Secmark, it is time to deprecate the older mechanism and start the
	process of removing the old code.
Who:	Paul Moore <paul.moore@hp.com>
Loading