Received: by 2002:a25:683:0:0:0:0:0 with SMTP id 125csp2509038ybg; Fri, 5 Jun 2020 16:02:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxXcKLDzziNt4Hue0Rc9wH8o8Pds4JyWAx+hjcsWCW1CtQkJrcq59q7oxbK5p/KnrwkVii4 X-Received: by 2002:a17:906:90d4:: with SMTP id v20mr10595226ejw.471.1591398135942; Fri, 05 Jun 2020 16:02:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1591398135; cv=none; d=google.com; s=arc-20160816; b=w0cjpjo0U1ddF4I+QN5eZuvH2bNoc4iJQc7wWDXm1tuDX/9YZAvfsX+pAf/4pXpk3y RcAWyEIewl7vkE4YuqMkUCpbA460CINK5LQqoRKI2J7sBITHhyWr9G2uyPhjyDlfCyST v73QCJvdSY/ok2vF85c95TUCS7s6i3+PQzMrNA2DpdwFYH7eEBO/l95w0WxNsxCbg6J4 liWTnjgORarpfvGBcyOoLTMaZ8m2v3AfG8x0VacNONxH6ZjhqGGN05VPRCEVveoJyzO+ O5w3ZtvQvWPG8pkHYUYsk65whjtlnEpFV8Tzj/VorYjnZNI/Wb/05dI4SJ8E8OHVYJuW huyg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=aFt/anDS7nzNEkZvhj5E9jn5B6aPNRUTEUXG6gw+rMw=; b=aPoOBksC493GT1KxnCgeZZMnwRM2x1u9FhdZnScgMEzPWlDSvE7Z9siR8H+90j2bDT Ef6iE9Gwj65UHaswXitCfPfRQGWG3Q7Pis5wFmBO2gJm2KpoBrb60bz5LgeKeKlTB5T8 HIur0/FDv5IniEf0zReXCFcLh77CmEoMb9uqD5UNiYkvEibtyMz63OlLHPi+Ck3qZQTh LE4AQuBeyn7JFmmrsB+bqM+mnmzlwFZyvPTHzSdRYYaRKSae9AxxXyjfwht8YoxG7Ljo zfqAnRB3J62WA3k56/e61eFgXzZ8z9ebV4u7x80ntkaxbcbmmdAPS/tLvaeDoS/xbQhm OOKg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=Py6p74Df; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m27si4194891eja.433.2020.06.05.16.01.53; Fri, 05 Jun 2020 16:02:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@broadcom.com header.s=google header.b=Py6p74Df; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=broadcom.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728374AbgFEXAM (ORCPT + 99 others); Fri, 5 Jun 2020 19:00:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728290AbgFEXAK (ORCPT ); Fri, 5 Jun 2020 19:00:10 -0400 Received: from mail-pg1-x544.google.com (mail-pg1-x544.google.com [IPv6:2607:f8b0:4864:20::544]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 922D5C08C5C2 for ; Fri, 5 Jun 2020 16:00:10 -0700 (PDT) Received: by mail-pg1-x544.google.com with SMTP id r10so5829302pgv.8 for ; Fri, 05 Jun 2020 16:00:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; h=from:to:cc:subject:date:message-id; bh=aFt/anDS7nzNEkZvhj5E9jn5B6aPNRUTEUXG6gw+rMw=; b=Py6p74DfoglbZqlPUm+YTvpOKViQG5W31OSdRj5ooXbxZ7v9F5LHL7MtsfOWDDDU9c 1esc8ikGjD2AI5glOmFX+wit2+4KpFX+kgu15NT5UPlYNYjQAsZu1PjPC6igT5y2TO5y B7EDpj9FWNU37TDEyMNM6XGZU8GVHZZgD7Qvk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=aFt/anDS7nzNEkZvhj5E9jn5B6aPNRUTEUXG6gw+rMw=; b=ZyDiLjRqVlZrP9gsiO/+FyCAgAUV/7ACc2kEx3PpEp9XD+IQzoV24HqM0Tr9Jms5Qj oQAcqfykC2gWMC2XESBKGicx+SnZzt8iOnxiahWbYq9TRwBx0k1Gx4tdnFISSCOiTqY9 jprUcZ6EsZBefp8t0SJRWhPjr2Mb/c2PGdZ05cfEa9Jek370q2fKMtx8jZ/erU02OA10 IPYe+MlLzY+tv6kt/7fdG55myWhSbeEZ9rPYT4qHVWEmvkqLbfN+A4arLfrO4qTNGe2e C70uZDBog2iIMPnWTYFQ8ZkJhRgBuBla2031QcW47hxnCzpbTgilocepzObSwfEuFDo8 H2Qw== X-Gm-Message-State: AOAM5319U60ixcItn819USFguT54A2PbXnsW/uId8EZxR+9HR/g2cbb8 lQKU1Nlbln8fLWUMrLle6UBK5A== X-Received: by 2002:a63:1c42:: with SMTP id c2mr10937728pgm.296.1591398009780; Fri, 05 Jun 2020 16:00:09 -0700 (PDT) Received: from lbrmn-lnxub113.broadcom.net ([192.19.228.250]) by smtp.gmail.com with ESMTPSA id b140sm568974pfb.119.2020.06.05.16.00.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Jun 2020 16:00:08 -0700 (PDT) From: Scott Branden To: Luis Chamberlain , Greg Kroah-Hartman , David Brown , Alexander Viro , Shuah Khan , bjorn.andersson@linaro.org, Shuah Khan , Arnd Bergmann Cc: Mimi Zohar , "Rafael J . Wysocki" , linux-kernel@vger.kernel.org, linux-arm-msm@vger.kernel.org, linux-fsdevel@vger.kernel.org, BCM Kernel Feedback , Olof Johansson , Andrew Morton , Dan Carpenter , Colin Ian King , Kees Cook , Takashi Iwai , linux-kselftest@vger.kernel.org, Andy Gross , linux-integrity@vger.kernel.org, linux-security-module@vger.kernel.org, Scott Branden Subject: [PATCH v6 0/8] firmware: add partial read support in request_firmware_into_buf Date: Fri, 5 Jun 2020 15:59:51 -0700 Message-Id: <20200605225959.12424-1-scott.branden@broadcom.com> X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series adds partial read support in request_firmware_into_buf. In order to accept the enhanced API it has been requested that kernel selftests and upstreamed driver utilize the API enhancement and so are included in this patch series. Also in this patch series is the addition of a new Broadcom VK driver utilizing the new request_firmware_into_buf enhanced API. Further comment followed to add IMA support of the partial reads originating from request_firmware_into_buf calls. Changes from v5: - add IMA FIRMWARE_PARTIAL_READ support - change kernel pread flags to enum - removed legacy support from driver - driver fixes Changes from v4: - handle reset issues if card crashes - allow driver to have min required msix - add card utilization information Changes from v3: - fix sparse warnings - fix printf format specifiers for size_t - fix 32-bit cross-compiling reports 32-bit shifts - use readl/writel,_relaxed to access pci ioremap memory, removed memory barriers and volatile keyword with such change - driver optimizations for interrupt/poll functionalities Changes from v2: - remove unnecessary code and mutex locks in lib/test_firmware.c - remove VK_IOCTL_ACCESS_BAR support from driver and use pci sysfs instead - remove bitfields - remove Kconfig default m - adjust formatting and some naming based on feedback - fix error handling conditions - use appropriate return codes - use memcpy_toio instead of direct access to PCIE bar Scott Branden (8): fs: introduce kernel_pread_file* support firmware: add offset to request_firmware_into_buf test_firmware: add partial read support for request_firmware_into_buf firmware: test partial file reads of request_firmware_into_buf bcm-vk: add bcm_vk UAPI misc: bcm-vk: add Broadcom VK driver MAINTAINERS: bcm-vk: add maintainer for Broadcom VK Driver ima: add FIRMWARE_PARTIAL_READ support MAINTAINERS | 7 + drivers/base/firmware_loader/firmware.h | 5 + drivers/base/firmware_loader/main.c | 59 +- drivers/misc/Kconfig | 1 + drivers/misc/Makefile | 1 + drivers/misc/bcm-vk/Kconfig | 29 + drivers/misc/bcm-vk/Makefile | 11 + drivers/misc/bcm-vk/bcm_vk.h | 408 +++++ drivers/misc/bcm-vk/bcm_vk_dev.c | 1312 +++++++++++++++ drivers/misc/bcm-vk/bcm_vk_msg.c | 1438 +++++++++++++++++ drivers/misc/bcm-vk/bcm_vk_msg.h | 201 +++ drivers/misc/bcm-vk/bcm_vk_sg.c | 271 ++++ drivers/misc/bcm-vk/bcm_vk_sg.h | 60 + drivers/misc/bcm-vk/bcm_vk_tty.c | 352 ++++ drivers/soc/qcom/mdt_loader.c | 7 +- fs/exec.c | 101 +- include/linux/firmware.h | 8 +- include/linux/fs.h | 30 + include/uapi/linux/misc/bcm_vk.h | 99 ++ lib/test_firmware.c | 144 +- security/integrity/ima/ima_main.c | 24 +- .../selftests/firmware/fw_filesystem.sh | 80 + 22 files changed, 4595 insertions(+), 53 deletions(-) create mode 100644 drivers/misc/bcm-vk/Kconfig create mode 100644 drivers/misc/bcm-vk/Makefile create mode 100644 drivers/misc/bcm-vk/bcm_vk.h create mode 100644 drivers/misc/bcm-vk/bcm_vk_dev.c create mode 100644 drivers/misc/bcm-vk/bcm_vk_msg.c create mode 100644 drivers/misc/bcm-vk/bcm_vk_msg.h create mode 100644 drivers/misc/bcm-vk/bcm_vk_sg.c create mode 100644 drivers/misc/bcm-vk/bcm_vk_sg.h create mode 100644 drivers/misc/bcm-vk/bcm_vk_tty.c create mode 100644 include/uapi/linux/misc/bcm_vk.h -- 2.17.1