1. 14 Jan, 2005 1 commit
  2. 05 Nov, 2004 1 commit
    • Jon Smirl's avatar
      [PATCH] PCI: add PCI ROMs to sysfs · f6d55344
      Jon Smirl authored
      
      Linus has requested that the sysfs rom attribute be changed to require
      enabling before it works. echo "0" to the attribute to disable,
      echoing anything else enables the rom output. The concern is that
      something like a file browser could inadvertently read the attribute
      and change the state of the hardware without the user's knowledge.
      
      The attached patch includes the previous patch plus the enabling logic.
      
      [root@smirl 0000:02:02.0]#
      [root@smirl 0000:02:02.0]# cat rom
      cat: rom: Invalid argument
      [root@smirl 0000:02:02.0]# echo "1" >rom
      [root@smirl 0000:02:02.0]# hexdump -C -n 20 rom
      00000000  55 aa 60 e9 d6 01 00 00  00 00 00 00 00 00 00 00  |U.`.............|
      00000010  00 00 00 00                                       |....|
      00000014
      [root@smirl 0000:02:02.0]# echo "0" >rom
      [root@smirl 0000:02:02.0]# hexdump -C -n 20 rom
      hexdump: rom: Invalid argument
      [root@smirl 0000:02:02.0]#
      Signed-off-by: default avatarJon Smirl <jonsmirl@gmail.com>
      Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
      f6d55344
  3. 25 Aug, 2004 1 commit
  4. 04 Feb, 2004 1 commit
    • Matthew Dobson's avatar
      [PATCH] PCI: fix "pcibus_class" Device Class, release function · de56fa21
      Matthew Dobson authored
      John Rose wrote:
      > The function release_pcibus_dev() in probe.c defines the release procedure for
      > device class pcibus_class.  I want to suggest that this function be scrapped :)
      >
      > This release function is called in the code path of class_device_unregister().
      > The pcibus_class devices aren't currently unregistered anywhere, from what I
      > can tell, so this release function is currently unused.  The runtime removal of
      > PCI buses from logical partitions on PPC64 requires the unregistration of these
      > class devices.  The natural place to do this IMHO is in pci_remove_bus_device()
      > in remove.c.
      
      You're right that the class device isn't currently unregistered, and
      that was an oversight in the patch I originally sent.  Attatched is a
      patch that remedies that situation.  pci_remove_bus_device() *is* the
      natural place to unregister the class_dev, and that's just what the
      patch does.
      
      
      > The problem is that this calls pci_destroy_dev(), which calls put() on the same
      > "bridge" device that the release function does.  This should only be done once
      > in the course of removing a pci_bus, and I doubt that we want to change
      > pci_destroy_dev().   The kfree() of the pci_bus struct is also done in both
      > pci_remove_bus_device() and release_pcibus_dev().
      
      Yep.  The patch pulls the kfree() out of pci_remove_bus_device() and
      calls class_device_unregister() in it's place.  This will put() the
      bridge device and free the pci_bus as needed.  put() does need to be
      called twice because the bridge device is get()'d twice: once when the
      device is registered and once when it's bus device grabs a reference to it.
      de56fa21
  5. 29 Dec, 2003 1 commit
  6. 15 Jul, 2003 1 commit