Show a cover letter.

GET /api/covers/807372/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 807372,
    "url": "http://patchwork.ozlabs.org/api/covers/807372/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/netdev/cover/1504054078-10173-1-git-send-email-subashab@codeaurora.org/",
    "project": {
        "id": 7,
        "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api",
        "name": "Linux network development",
        "link_name": "netdev",
        "list_id": "netdev.vger.kernel.org",
        "list_email": "netdev@vger.kernel.org",
        "web_url": null,
        "scm_url": null,
        "webscm_url": null,
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<1504054078-10173-1-git-send-email-subashab@codeaurora.org>",
    "list_archive_url": null,
    "date": "2017-08-30T00:47:55",
    "name": "[net-next,0/3,v10] Add support for rmnet driver",
    "submitter": {
        "id": 65547,
        "url": "http://patchwork.ozlabs.org/api/people/65547/?format=api",
        "name": "Subash Abhinov Kasiviswanathan",
        "email": "subashab@codeaurora.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/netdev/cover/1504054078-10173-1-git-send-email-subashab@codeaurora.org/mbox/",
    "series": [
        {
            "id": 511,
            "url": "http://patchwork.ozlabs.org/api/series/511/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/netdev/list/?series=511",
            "date": "2017-08-30T00:47:55",
            "name": "Add support for rmnet driver",
            "version": 10,
            "mbox": "http://patchwork.ozlabs.org/series/511/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/807372/comments/",
    "headers": {
        "Return-Path": "<netdev-owner@vger.kernel.org>",
        "X-Original-To": "patchwork-incoming@ozlabs.org",
        "Delivered-To": "patchwork-incoming@ozlabs.org",
        "Authentication-Results": [
            "ozlabs.org;\n\tspf=none (mailfrom) smtp.mailfrom=vger.kernel.org\n\t(client-ip=209.132.180.67; helo=vger.kernel.org;\n\tenvelope-from=netdev-owner@vger.kernel.org;\n\treceiver=<UNKNOWN>)",
            "ozlabs.org; dkim=pass (1024-bit key;\n\tunprotected) header.d=codeaurora.org header.i=@codeaurora.org\n\theader.b=\"RObwdiWZ\"; \n\tdkim=pass (1024-bit key) header.d=codeaurora.org\n\theader.i=@codeaurora.org header.b=\"boNvrjqf\"; \n\tdkim-atps=neutral",
            "pdx-caf-mail.web.codeaurora.org;\n\tdmarc=none (p=none dis=none)\n\theader.from=codeaurora.org",
            "pdx-caf-mail.web.codeaurora.org;\n\tspf=none smtp.mailfrom=subashab@codeaurora.org"
        ],
        "Received": [
            "from vger.kernel.org (vger.kernel.org [209.132.180.67])\n\tby ozlabs.org (Postfix) with ESMTP id 3xhn2q0HQFz9s9Y\n\tfor <patchwork-incoming@ozlabs.org>;\n\tWed, 30 Aug 2017 10:49:39 +1000 (AEST)",
            "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751801AbdH3Ath (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tTue, 29 Aug 2017 20:49:37 -0400",
            "from smtp.codeaurora.org ([198.145.29.96]:45574 \"EHLO\n\tsmtp.codeaurora.org\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751290AbdH3Atg (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Tue, 29 Aug 2017 20:49:36 -0400",
            "by smtp.codeaurora.org (Postfix, from userid 1000)\n\tid 8492360725; Wed, 30 Aug 2017 00:49:35 +0000 (UTC)",
            "from subashab-lnx.qualcomm.com (unknown [129.46.15.92])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits))\n\t(No client certificate requested)\n\t(Authenticated sender: subashab@codeaurora.org)\n\tby smtp.codeaurora.org (Postfix) with ESMTPSA id 7F4CF60725;\n\tWed, 30 Aug 2017 00:49:33 +0000 (UTC)"
        ],
        "DKIM-Signature": [
            "v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org;\n\ts=default; t=1504054175;\n\tbh=aj6oDguCHID4pD5IbYCA9TilxuaaWjH72uA9/WUhCCQ=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=RObwdiWZRYX99OlinbvsBhy3MVlNki4iTkZESy2r+OVEvXTFLdphNvFf7sOoYr6wk\n\tXw9RIylFoHJzKjhtwSOpfym+DmpPf6UXrh0e/K2YU8fjjQhNDGhF+3+AJMrkmi6Ntq\n\tf3va75+cx4a20eMrFRcn+Q0lm/UfgKXSnLsbUjog=",
            "v=1; a=rsa-sha256; c=relaxed/simple; d=codeaurora.org;\n\ts=default; t=1504054174;\n\tbh=aj6oDguCHID4pD5IbYCA9TilxuaaWjH72uA9/WUhCCQ=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=boNvrjqfVF8n/Se4QLF6Z+Rfm/m8KPJzISGFuV01iP9jvk/haIAiueWwYp0GoPVJK\n\tWTrKuOIrQDmWfQ8ibNTGEBbrOgQPPIA2MNiiDseIXSbItSt8G1VaVjJ4+dT2Tck0Xy\n\t/IzAuxQEDQEzfeRqgcXrGIwTYQPEDQlDMuxDPYo0="
        ],
        "X-Spam-Checker-Version": "SpamAssassin 3.4.0 (2014-02-07) on\n\tpdx-caf-mail.web.codeaurora.org",
        "X-Spam-Level": "",
        "X-Spam-Status": "No, score=-2.8 required=2.0 tests=ALL_TRUSTED,BAYES_00,\n\tDKIM_SIGNED,\n\tT_DKIM_INVALID autolearn=no autolearn_force=no version=3.4.0",
        "DMARC-Filter": "OpenDMARC Filter v1.3.2 smtp.codeaurora.org 7F4CF60725",
        "From": "Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>",
        "To": "netdev@vger.kernel.org, davem@davemloft.net,\n\tfengguang.wu@intel.com, dcbw@redhat.com, jiri@resnulli.us,\n\tstephen@networkplumber.org, David.Laight@ACULAB.COM,\n\tmarcel@holtmann.org, andrew@lunn.ch",
        "Cc": "Subash Abhinov Kasiviswanathan <subashab@codeaurora.org>",
        "Subject": "[PATCH net-next 0/3 v10] Add support for rmnet driver",
        "Date": "Tue, 29 Aug 2017 18:47:55 -0600",
        "Message-Id": "<1504054078-10173-1-git-send-email-subashab@codeaurora.org>",
        "X-Mailer": "git-send-email 1.9.1",
        "Sender": "netdev-owner@vger.kernel.org",
        "Precedence": "bulk",
        "List-ID": "<netdev.vger.kernel.org>",
        "X-Mailing-List": "netdev@vger.kernel.org"
    },
    "content": "Hi David\n\nI have updated the locking scheme as follows -\n\nThe shared resource which needs to be protected is realdev->rx_handler_data.\n\nFor the writer path, this is using rtnl_lock(). The writer paths are\nrmnet_newlink(), rmnet_dellink() and rmnet_force_unassociate_device(). These\npaths are already called with rtnl_lock() acquired in. There is also an\nASSERT_RTNL() to ensure that we are calling with rtnl acquired. For\ndereference here, we will need to use rtnl_dereference(). Dev list writing\nneeds to happen with rtnl_lock() acquired for netdev_master_upper_dev_link().\n\nFor the reader path, the real_dev->rx_handler_data is called in the TX / RX\npath. We only need rcu_read_lock() for these scenarios. In these cases,\nthe rcu_read_lock() is held in __dev_queue_xmit() and\nnetif_receive_skb_internal(), so readers need to use rcu_dereference_rtnl()\nto get the relevant information. For dev list reading, we again acquire\nrcu_read_lock() in rmnet_dellink() for netdev_master_upper_dev_get_rcu().\nWe also use unregister_netdevice_many() to free all rmnet devices in\nrmnet_force_unassociate_device() so we dont lose the rtnl_lock() and free in\nsame context.\n\nI have also added this as a comment in rmnet_config.c.\n\n--\nv1: Same as the RFC patch with some minor fixes for issues reported by\nkbuild test robot.\n\nv1->v2: Change datatypes and remove config IOCTL as mentioned by David.\nAlso fix checkpatch issues and remove some unused code.\n\nv2->v3: Move location to drivers/net and rename to rmnet. Change the\nuserspace - netlink communication from custom netlink to rtnl_link_ops.\nRefactor some code. Use a fixed config for ingress and egress.\n\nv3->v4: Move location to drivers/net/ethernet/qualcomm/.\nFix comments from Stephen and Jiri -\nSplit the ether and arp type changes into seperate patches.\nRemove debug and custom logging and switch to standard netdevice log.\nRemove module parameters. Refactor and change some code style issues.\n\nv4->v5: Rename some structs and variables. Move the initializer\nbefore the for loop start. Put the arp type in correct sequence.\n\nv5->v6: Fix comments from Dan -\nUse the upper link API. As a result, remove all the refcounting logic.\nDevice refcount is explicitly held on real_dev on rx_handler\nregistration only. Modifiy the flow control struct. Remove the unused\nethernet mode handling.\n\nv6->v7: Fix comments from David - Add newline to end of Makefile. Remove\ninline from .c files. Move the module init/exit to rmnet config. Fix an\nerror reported by kbuild test robot for an unused file.\n\nv7->v8: Use a smaller value for ETH_P_MAP as mentioned by David. Change\nnetdev_info to netdev_dbg as mentioned by Andew. Fix comments from\nStephen regarding netdev_priv and sparse related errors of using 0 as NULL\n\nv8->v9: Fix comments from David - Remove the CFLAG rule. Change the way\nrmnet devices are freed. Instead of using a workqueue to unregister devices\nindividually, go through the list and free all devices within the rtnl_lock().\n\nv9->v10: Fix the locking scheme as mentioned by David. Change comment near\nMAP type definition as mentioned by Dan. Refactor some code.\n\nSubash Abhinov Kasiviswanathan (3):\n  net: ether: Add support for multiplexing and aggregation type\n  net: arp: Add support for raw IP device\n  drivers: net: ethernet: qualcomm: rmnet: Initial implementation\n\n Documentation/networking/rmnet.txt                 |  82 ++++\n drivers/net/ethernet/qualcomm/Kconfig              |   2 +\n drivers/net/ethernet/qualcomm/Makefile             |   2 +\n drivers/net/ethernet/qualcomm/rmnet/Kconfig        |  12 +\n drivers/net/ethernet/qualcomm/rmnet/Makefile       |  10 +\n drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c | 419 +++++++++++++++++++++\n drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h |  56 +++\n .../net/ethernet/qualcomm/rmnet/rmnet_handlers.c   | 271 +++++++++++++\n .../net/ethernet/qualcomm/rmnet/rmnet_handlers.h   |  26 ++\n drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h    |  88 +++++\n .../ethernet/qualcomm/rmnet/rmnet_map_command.c    | 107 ++++++\n .../net/ethernet/qualcomm/rmnet/rmnet_map_data.c   | 105 ++++++\n .../net/ethernet/qualcomm/rmnet/rmnet_private.h    |  45 +++\n drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c    | 170 +++++++++\n drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.h    |  29 ++\n include/uapi/linux/if_arp.h                        |   1 +\n include/uapi/linux/if_ether.h                      |   3 +\n 17 files changed, 1428 insertions(+)\n create mode 100644 Documentation/networking/rmnet.txt\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/Kconfig\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/Makefile\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_config.h\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.c\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_handlers.h\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_map.h\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_map_command.c\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_map_data.c\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_private.h\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.c\n create mode 100644 drivers/net/ethernet/qualcomm/rmnet/rmnet_vnd.h"
}