Commit 731bb311 authored by Dan Williams's avatar Dan Williams
Browse files

Revert "PCI/TSM: Report active IDE streams"



The proposed ABI failed to account for multiple host bridges with the same
stream name. The fix needs to namespace streams or otherwise link back to
the host bridge, but a change like that is too big for a fix. Given this
ABI never saw a released kernel, delete it for now and bring it back later
with this issue addressed.

Reported-by: default avatarXu Yilun <yilun.xu@linux.intel.com>
Reported-by: default avatarYi Lai <yi1.lai@intel.com>
Closes: http://lore.kernel.org/20251223085601.2607455-1-yilun.xu@linux.intel.com
Link: http://patch.msgid.link/6972c872acbb9_1d3310035@dwillia2-mobl4.notmuch


Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 24d479d2
Loading
Loading
Loading
Loading
+0 −10
Original line number Diff line number Diff line
@@ -7,13 +7,3 @@ Description:
		signals when the PCI layer is able to support establishment of
		link encryption and other device-security features coordinated
		through a platform tsm.

What:		/sys/class/tsm/tsmN/streamH.R.E
Contact:	linux-pci@vger.kernel.org
Description:
		(RO) When a host bridge has established a secure connection via
		the platform TSM, symlink appears. The primary function of this
		is have a system global review of TSM resource consumption
		across host bridges. The link points to the endpoint PCI device
		and matches the same link published by the host bridge. See
		Documentation/ABI/testing/sysfs-devices-pci-host-bridge.
+0 −4
Original line number Diff line number Diff line
@@ -11,7 +11,6 @@
#include <linux/pci_regs.h>
#include <linux/slab.h>
#include <linux/sysfs.h>
#include <linux/tsm.h>

#include "pci.h"

@@ -373,9 +372,6 @@ void pci_ide_stream_release(struct pci_ide *ide)
	if (ide->partner[PCI_IDE_EP].enable)
		pci_ide_stream_disable(pdev, ide);

	if (ide->tsm_dev)
		tsm_ide_stream_unregister(ide);

	if (ide->partner[PCI_IDE_RP].setup)
		pci_ide_stream_teardown(rp, ide);

+0 −28
Original line number Diff line number Diff line
@@ -4,13 +4,11 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt

#include <linux/tsm.h>
#include <linux/pci.h>
#include <linux/rwsem.h>
#include <linux/device.h>
#include <linux/module.h>
#include <linux/cleanup.h>
#include <linux/pci-tsm.h>
#include <linux/pci-ide.h>

static struct class *tsm_class;
static DECLARE_RWSEM(tsm_rwsem);
@@ -108,32 +106,6 @@ void tsm_unregister(struct tsm_dev *tsm_dev)
}
EXPORT_SYMBOL_GPL(tsm_unregister);

/* must be invoked between tsm_register / tsm_unregister */
int tsm_ide_stream_register(struct pci_ide *ide)
{
	struct pci_dev *pdev = ide->pdev;
	struct pci_tsm *tsm = pdev->tsm;
	struct tsm_dev *tsm_dev = tsm->tsm_dev;
	int rc;

	rc = sysfs_create_link(&tsm_dev->dev.kobj, &pdev->dev.kobj, ide->name);
	if (rc)
		return rc;

	ide->tsm_dev = tsm_dev;
	return 0;
}
EXPORT_SYMBOL_GPL(tsm_ide_stream_register);

void tsm_ide_stream_unregister(struct pci_ide *ide)
{
	struct tsm_dev *tsm_dev = ide->tsm_dev;

	ide->tsm_dev = NULL;
	sysfs_remove_link(&tsm_dev->dev.kobj, ide->name);
}
EXPORT_SYMBOL_GPL(tsm_ide_stream_unregister);

static void tsm_release(struct device *dev)
{
	struct tsm_dev *tsm_dev = container_of(dev, typeof(*tsm_dev), dev);
+0 −2
Original line number Diff line number Diff line
@@ -82,7 +82,6 @@ struct pci_ide_regs {
 * @host_bridge_stream: allocated from host bridge @ide_stream_ida pool
 * @stream_id: unique Stream ID (within Partner Port pairing)
 * @name: name of the established Selective IDE Stream in sysfs
 * @tsm_dev: For TSM established IDE, the TSM device context
 *
 * Negative @stream_id values indicate "uninitialized" on the
 * expectation that with TSM established IDE the TSM owns the stream_id
@@ -94,7 +93,6 @@ struct pci_ide {
	u8 host_bridge_stream;
	int stream_id;
	const char *name;
	struct tsm_dev *tsm_dev;
};

/*
+0 −3
Original line number Diff line number Diff line
@@ -123,7 +123,4 @@ int tsm_report_unregister(const struct tsm_report_ops *ops);
struct tsm_dev *tsm_register(struct device *parent, struct pci_tsm_ops *ops);
void tsm_unregister(struct tsm_dev *tsm_dev);
struct tsm_dev *find_tsm_dev(int id);
struct pci_ide;
int tsm_ide_stream_register(struct pci_ide *ide);
void tsm_ide_stream_unregister(struct pci_ide *ide);
#endif /* __TSM_H */