fcoe-y := \
        libfcoe.o \
-       fcoe_sw.o \
-       fc_transport_fcoe.o
+       fcoe_sw.o
 
 
 #include <scsi/libfc.h>
 #include <scsi/libfcoe.h>
-#include <scsi/fc_transport_fcoe.h>
 
 #define FCOE_SW_VERSION        "0.1"
 #define        FCOE_SW_NAME    "fcoesw"
  *
  * Returns: 0 if link is OK for use by FCoE.
  */
-static int fcoe_sw_destroy(struct net_device *netdev)
+int fcoe_sw_destroy(struct net_device *netdev)
 {
        struct fc_lport *lp = NULL;
        struct fcoe_softc *fc;
  *
  * Returns : 0 on success
  */
-static int fcoe_sw_create(struct net_device *netdev)
+int fcoe_sw_create(struct net_device *netdev)
 {
        int rc;
        struct fc_lport *lp = NULL;
 }
 
 /**
- * fcoe_sw_match() - The FCoE SW transport match function
- *
- * Returns : false always
- */
-static bool fcoe_sw_match(struct net_device *netdev)
-{
-       /* FIXME - for sw transport, always return false */
-       return false;
-}
-
-/* the sw hba fcoe transport */
-struct fcoe_transport fcoe_sw_transport = {
-       .name = "fcoesw",
-       .create = fcoe_sw_create,
-       .destroy = fcoe_sw_destroy,
-       .match = fcoe_sw_match,
-       .vendor = 0x0,
-       .device = 0xffff,
-};
-
-/**
- * fcoe_sw_init() - Registers fcoe_sw_transport
+ * fcoe_sw_init() - attach to scsi transport
  *
  * Returns : 0 on success
  */
                return -ENODEV;
        }
 
-       mutex_init(&fcoe_sw_transport.devlock);
-       INIT_LIST_HEAD(&fcoe_sw_transport.devlist);
-
-       /* register sw transport */
-       fcoe_transport_register(&fcoe_sw_transport);
        return 0;
 }
 
 /**
- * fcoe_sw_exit() - Unregisters fcoe_sw_transport
+ * fcoe_sw_exit() - detach from scsi transport
  *
  * Returns : 0 on success
  */
 int __exit fcoe_sw_exit(void)
 {
-       /* dettach the transport */
        fc_release_transport(scsi_transport_fcoe_sw);
-       fcoe_transport_unregister(&fcoe_sw_transport);
        return 0;
 }
 
 #include <scsi/libfc.h>
 #include <scsi/fc_frame.h>
 #include <scsi/libfcoe.h>
-#include <scsi/fc_transport_fcoe.h>
 
 static int debug_fcoe;
 
                rc = -ENODEV;
                goto out_putdev;
        }
-       /* pass to transport */
-       rc = fcoe_transport_release(netdev);
+       rc = fcoe_sw_destroy(netdev);
        if (rc) {
-               printk(KERN_ERR "fcoe: fcoe_transport_release(%s) failed\n",
+               printk(KERN_ERR "fcoe: fcoe_sw_destroy(%s) failed\n",
                       netdev->name);
                rc = -EIO;
                goto out_putdev;
        }
        fcoe_ethdrv_get(netdev);
 
-       /* pass to transport */
-       rc = fcoe_transport_attach(netdev);
+       rc = fcoe_sw_create(netdev);
        if (rc) {
-               printk(KERN_ERR "fcoe: fcoe_transport_attach(%s) failed\n",
+               printk(KERN_ERR "fcoe: fcoe_sw_create(%s) failed\n",
                       netdev->name);
                fcoe_ethdrv_put(netdev);
                rc = -EIO;
 /**
  * fcoe_init() - fcoe module loading initialization
  *
- * Initialization routine
- * 1. Will create fc transport software structure
- * 2. initialize the link list of port information structure
- *
  * Returns 0 on success, negative on failure
  */
 static int __init fcoe_init(void)
 
        mod_timer(&fcoe_timer, jiffies + (10 * HZ));
 
-       /* initiatlize the fcoe transport */
-       fcoe_transport_init();
-
        fcoe_sw_init();
 
        return 0;
        /* Stop the timer */
        del_timer_sync(&fcoe_timer);
 
-       /* releases the associated fcoe transport for each lport */
+       /* releases the associated fcoe hosts */
        list_for_each_entry_safe(fc, tmp, &fcoe_hostlist, list)
-               fcoe_transport_release(fc->real_dev);
+               fcoe_sw_destroy(fc->real_dev);
 
        unregister_hotcpu_notifier(&fcoe_cpu_notifier);
 
 
        /* remove sw trasnport */
        fcoe_sw_exit();
-
-       /* detach the transport */
-       fcoe_transport_exit();
 }
 module_exit(fcoe_exit);
 
 /* fcoe sw hba */
 int __init fcoe_sw_init(void);
 int __exit fcoe_sw_exit(void);
+int fcoe_sw_create(struct net_device *);
+int fcoe_sw_destroy(struct net_device *);
 #endif /* _LIBFCOE_H */