From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756787AbdERRrN (ORCPT ); Thu, 18 May 2017 13:47:13 -0400 Received: from a2nlsmtp01-05.prod.iad2.secureserver.net ([198.71.225.49]:44132 "EHLO a2nlsmtp01-05.prod.iad2.secureserver.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756364AbdERRrK (ORCPT ); Thu, 18 May 2017 13:47:10 -0400 x-originating-ip: 107.180.71.197 From: kys@exchange.microsoft.com To: gregkh@linuxfoundation.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, olaf@aepfle.de, apw@canonical.com, vkuznets@redhat.com, jasowang@redhat.com, leann.ogasawara@canonical.com, marcelo.cerri@canonical.com, sthemmin@microsoft.com Cc: Andy Shevchenko , "K. Y. Srinivasan" Subject: [PATCH 5/6] vmbus: Reuse uuid_le_to_bin() helper Date: Thu, 18 May 2017 10:46:06 -0700 Message-Id: <1495129567-13744-5-git-send-email-kys@exchange.microsoft.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1495129534-13628-1-git-send-email-kys@exchange.microsoft.com> References: <1495129534-13628-1-git-send-email-kys@exchange.microsoft.com> Reply-To: kys@microsoft.com X-CMAE-Envelope: MS4wfAofsumxoT+kk7N8lyzlmB6y8KcQoH/TEad409C4zbJy7yq9CLDg7NV/vOMO2ipzF2bKsKIG/u0e3CduyWbQgqyKyFpr//hNqPv/uUqclWL/8OvbFKHW PA3F1b2tn/YJ0gL3n4OhogwX+l02z9XWOCL//s627k/Q4zMmATQX1Zq0+xMD8MykPLqsB3QflThsY3aPMujeeeRXfAfVmVn5F+vYl9Rl0cW8bqRp8RleehQY u0313munn6keGp1sIxB6qQKGmD/khYxbHuq4rwJDywlbZUMiXGiiP8KDF9kFETNUQmHOyFRy0mFLexorgyVocW1O19XXMcQbnaNF7SkT8uqFNMo2pbi0X5Yb /uUKhSOGJXSF9o8wadma9rW9EbPyacWU3T3kboTI5eSOXCbrRLnxcAu+zGsTECbHdv777rLgLxjJp2I6P3BeredafTYs79EBH/e9nKV3zQhGq0QUREnBt8VC bjSjQl65dDHXQ3N8eLg6AOCf4eZHr38tlCucT/a0loMDzrhWZopM0V1Ga8jwMgLxvAP/PicZGQ6+jnJMcvfCl+2BAn0QDg0iigz96GlPpALilUSMwnDftSJY xlQ= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andy Shevchenko Instead of open coded variant use generic helper to convert UUID strings to binary format. Signed-off-by: Andy Shevchenko Signed-off-by: K. Y. Srinivasan --- drivers/hv/vmbus_drv.c | 51 +++++++++-------------------------------------- 1 files changed, 10 insertions(+), 41 deletions(-) diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c index 59bb3ef..ed84e96 100644 --- a/drivers/hv/vmbus_drv.c +++ b/drivers/hv/vmbus_drv.c @@ -608,40 +608,6 @@ static void vmbus_free_dynids(struct hv_driver *drv) spin_unlock(&drv->dynids.lock); } -/* Parse string of form: 1b4e28ba-2fa1-11d2-883f-b9a761bde3f */ -static int get_uuid_le(const char *str, uuid_le *uu) -{ - unsigned int b[16]; - int i; - - if (strlen(str) < 37) - return -1; - - for (i = 0; i < 36; i++) { - switch (i) { - case 8: case 13: case 18: case 23: - if (str[i] != '-') - return -1; - break; - default: - if (!isxdigit(str[i])) - return -1; - } - } - - /* unparse little endian output byte order */ - if (sscanf(str, - "%2x%2x%2x%2x-%2x%2x-%2x%2x-%2x%2x-%2x%2x%2x%2x%2x%2x", - &b[3], &b[2], &b[1], &b[0], - &b[5], &b[4], &b[7], &b[6], &b[8], &b[9], - &b[10], &b[11], &b[12], &b[13], &b[14], &b[15]) != 16) - return -1; - - for (i = 0; i < 16; i++) - uu->b[i] = b[i]; - return 0; -} - /* * store_new_id - sysfs frontend to vmbus_add_dynid() * @@ -651,11 +617,12 @@ static ssize_t new_id_store(struct device_driver *driver, const char *buf, size_t count) { struct hv_driver *drv = drv_to_hv_drv(driver); - uuid_le guid = NULL_UUID_LE; + uuid_le guid; ssize_t retval; - if (get_uuid_le(buf, &guid) != 0) - return -EINVAL; + retval = uuid_le_to_bin(buf, &guid); + if (retval) + return retval; if (hv_vmbus_get_id(drv, &guid)) return -EEXIST; @@ -677,12 +644,14 @@ static ssize_t remove_id_store(struct device_driver *driver, const char *buf, { struct hv_driver *drv = drv_to_hv_drv(driver); struct vmbus_dynid *dynid, *n; - uuid_le guid = NULL_UUID_LE; - size_t retval = -ENODEV; + uuid_le guid; + ssize_t retval; - if (get_uuid_le(buf, &guid)) - return -EINVAL; + retval = uuid_le_to_bin(buf, &guid); + if (retval) + return retval; + retval = -ENODEV; spin_lock(&drv->dynids.lock); list_for_each_entry_safe(dynid, n, &drv->dynids.list, node) { struct hv_vmbus_device_id *id = &dynid->id; -- 1.7.1