Revision 475049809977bf3975d78f2d2fd992e19ce2d59e authored by Roel Kluin on 10 March 2009, 19:55:45 UTC, committed by Linus Torvalds on 10 March 2009, 22:55:10 UTC
get_nid_for_pfn() returns int

Presumably the (nid < 0) case has never happened.

We do know that it is happening on one system while creating a symlink for
a memory section so it should also happen on the same system if
unregister_mem_sect_under_nodes() were called to remove the same symlink.

The test was actually added in response to a problem with an earlier
version reported by Yasunori Goto where one or more of the leading pages
of a memory section on the 2nd node of one of his systems was
uninitialized because I believe they coincided with a memory hole.

That earlier version did not ignore uninitialized pages and determined
the nid by considering only the 1st page of each memory section.  This
caused the symlink to the 1st memory section on the 2nd node to be
incorrectly created in /sys/devices/system/node/node0 instead of
/sys/devices/system/node/node1.  The problem was fixed by adding the
test to skip over uninitialized pages.

I suspect we have not seen any reports of the non-removal
of a symlink due to the incorrect declaration of the nid
variable in unregister_mem_sect_under_nodes() because
  - systems where a memory section could have an uninitialized
    range of leading pages are probably rare.
  - memory remove is probably not done very frequently on the
    systems that are capable of demonstrating the problem.
  - lingering symlink(s) that should have been removed may
    have simply gone unnoticed.

[garyhade@us.ibm.com: wrote changelog]
Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
Cc: Gary Hade <garyhade@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 1abaf33
Raw File
Kconfig
#
# UWB device configuration
#

menuconfig UWB
	tristate "Ultra Wideband devices (EXPERIMENTAL)"
	depends on EXPERIMENTAL
	depends on PCI
	default n
	help
	  UWB is a high-bandwidth, low-power, point-to-point radio
	  technology using a wide spectrum (3.1-10.6GHz). It is
	  optimized for in-room use (480Mbps at 2 meters, 110Mbps at
	  10m). It serves as the transport layer for other protocols,
	  such as Wireless USB (WUSB), IP (WLP) and upcoming
	  Bluetooth and 1394

	  The topology is peer to peer; however, higher level
	  protocols (such as WUSB) might impose a master/slave
	  relationship.

	  Say Y here if your computer has UWB radio controllers (USB or PCI)
	  based. You will need to enable the radio controllers
	  below.  It is ok to select all of them, no harm done.

	  For more help check the UWB and WUSB related files in
	  <file:Documentation/usb/>.

	  To compile the UWB stack as a module, choose M here.

if UWB

config UWB_HWA
	tristate "UWB Radio Control driver for WUSB-compliant USB dongles (HWA)"
	depends on USB
	help
	  This driver enables the radio controller for HWA USB
	  devices. HWA stands for Host Wire Adapter, and it is a UWB
	  Radio Controller connected to your system via USB. Most of
	  them come with a Wireless USB host controller also.

	  To compile this driver select Y (built in) or M (module). It
	  is safe to select any even if you do not have the hardware.

config UWB_WHCI
        tristate "UWB Radio Control driver for WHCI-compliant cards"
        depends on PCI
        help
          This driver enables the radio controller for WHCI cards.

          WHCI is an specification developed by Intel
          (http://www.intel.com/technology/comms/wusb/whci.htm) much
          in the spirit of USB's EHCI, but for UWB and Wireless USB
          radio/host controllers connected via memmory mapping (eg:
          PCI). Most of these cards come also with a Wireless USB host
          controller.

          To compile this driver select Y (built in) or M (module). It
          is safe to select any even if you do not have the hardware.

config UWB_WLP
	tristate "Support WiMedia Link Protocol (Ethernet/IP over UWB)"
	depends on UWB && NET
	help
	  This is a common library for drivers that implement
	  networking over UWB.

config UWB_I1480U
        tristate "Support for Intel Wireless UWB Link 1480 HWA"
        depends on UWB_HWA
        select FW_LOADER
        help
         This driver enables support for the i1480 when connected via
         USB. It consists of a firmware uploader that will enable it
         to behave as an HWA device.

         To compile this driver select Y (built in) or M (module). It
         is safe to select any even if you do not have the hardware.

config UWB_I1480U_WLP
        tristate "Support for Intel Wireless UWB Link 1480 HWA's WLP interface"
        depends on UWB_I1480U &&  UWB_WLP && NET
        help
         This driver enables WLP support for the i1480 when connected via
         USB. WLP is the WiMedia Link Protocol, or IP over UWB.

         To compile this driver select Y (built in) or M (module). It
         is safe to select any even if you don't have the hardware.

endif # UWB
back to top