]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
mei: bus: blacklist clients by number of connections
authorTomas Winkler <tomas.winkler@intel.com>
Thu, 23 Jul 2015 12:08:45 +0000 (15:08 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 4 Aug 2015 00:24:16 +0000 (17:24 -0700)
Currently we support only clients with single connection
and fixed address clients so all other clients are blacklisted

Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/mei/bus-fixup.c

index 696918a6fa4fb139768eae796a0f55ffd5eb0e9f..fd6470f42671ef0418c468791ede8b4164521b0a 100644 (file)
 
 #define MEI_UUID_ANY NULL_UUID_LE
 
+/**
+ * number_of_connections - determine whether an client be on the bus
+ *    according number of connections
+ *    We support only clients:
+ *       1. with single connection
+ *       2. and fixed clients (max_number_of_connections == 0)
+ *
+ * @cldev: me clients device
+ */
+static void number_of_connections(struct mei_cl_device *cldev)
+{
+       dev_dbg(&cldev->dev, "running hook %s on %pUl\n",
+                       __func__, mei_me_cl_uuid(cldev->me_cl));
+
+       if (cldev->me_cl->props.max_number_of_connections > 1)
+               cldev->do_match = 0;
+}
+
 /**
  * blacklist - blacklist a client from the bus
  *
@@ -435,6 +453,7 @@ static struct mei_fixup {
        const uuid_le uuid;
        void (*hook)(struct mei_cl_device *cldev);
 } mei_fixups[] = {
+       MEI_FIXUP(MEI_UUID_ANY, number_of_connections),
        MEI_FIXUP(MEI_UUID_NFC_INFO, blacklist),
 };