• Kay Sievers's avatar
    [PATCH] add the physical device and the bus to the hotplug environment · 8f2a5465
    Kay Sievers authored
    Add the sysfs path of the physical device to the hotplug event of class
    and block devices. This should solve the userspace issue not to know if
    the device is a virtual one and the "device" symlink will never be created,
    but we sit there and wait for it to show up not knowing when we should
    give up.
    
    Also the bus name is added to the hotplug event, so we don't need to
    reverse lookup in the /sys/bus/* directory which bus our physical
    device belongs to. This is e.g. the value matched against the BUS= key,
    that may be used in an udev rule.
    
    This is a PCI network card:
      ACTION=add
      SUBSYSTEM=net
      DEVPATH=/class/net/eth0
      PHYSDEVPATH=/devices/pci0000:00/0000:00:1e.0/0000:02:01.0
      PHYSDEVBUS=pci
      INTERFACE=eth0
      SEQNUM=827
      PATH=/sbin:/bin:/usr/sbin:/usr/bin
      HOME=/
    
    This is a IDE CDROM:
      ACTION=add
      SUBSYSTEM=block
      DEVPATH=/block/hdc
      PHYSDEVPATH=/devices/pci0000:00/0000:00:1f.1/ide1/1.0
      PHYSDEVBUS=ide
      SEQNUM=1017
      PATH=/sbin:/bin:/usr/sbin:/usr/bin
      HOME=/
    
    This is an USB-stick partition:
      ACTION=add
      SUBSYSTEM=block
      DEVPATH=/block/sda/sda1
      PHYSDEVPATH=/devices/pci0000:00/0000:00:1d.1/usb3/3-1/3-1:1.0/host1/target1:0:0/1:0:0:0
      PHYSDEVBUS=scsi
      SEQNUM=1032
      PATH=/sbin:/bin:/usr/sbin:/usr/bin
      HOME=/
    Signed-off-by: default avatarKay Sievers <kay.sievers@vrfy.org>
    Signed-off-by: default avatarGreg Kroah-Hartman <greg@kroah.com>
    8f2a5465
class.c 13.2 KB