So a hot-plug capable port is an external port, like the commit said. If we want to fix so that a eSATA port or external port is actually listed as removable, then, as Thomas said, dev_set_removable() seems to be the correct way. SCSI does have a "HOT PLUGGABLE" field in "6.7.2 Standard INQUIRY data", so the proper way to mark the SATA device as removable is probably to let ata_scsiop_inq_std() set the "HOT PLUGGABLE" field correctly (if ATA_PFLAG_EXTERNAL), such that SCSI core can call dev_set_removable() with the proper arguments. However, right now SCSI core does not call dev_set_removable() at all. In fact, it seems to only be used by drivers/mmc/core/bus.c, drivers/pci/probe.c, and drivers/usb/core/hub.c. I suggest that we: 1) Merge Damien's fix. 2) Modify SCSI to call dev_set_removable() and modify ata_scsiop_inq_std() to set the "HOT PLUGGABLE" field. Kind regards, Niklas