History

Merge tag 'char-misc-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc

Pull char/misc fixes/removals from Greg KH: "Here's some small fixes for 5.10-rc2 and a big driver removal. The fixes are for some reported issues in the interconnect and coresight drivers, nothing major. The "big" driver removal is the MIC drivers have been asked to be removed as the hardware never shipped and Intel no longer wants to maintain something that no one can use. This is welcomed by many as the DMA usage of these drivers was "interesting" and the security people were starting to question some issues that were starting to be found in the codebase. Note, one of the subsystems for this driver, the "VOP" code, will probably come back in future kernel versions as it was looking to potentially solve some PCIe virtualization issues that a number of other vendors were wanting to solve. But as-is, this codebase didn't work for anyone else so no actual functionality is being removed. All of these have been in linux-next with no reported issues" * tag 'char-misc-5.10-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc: coresight: cti: Initialize dynamic sysfs attributes coresight: Fix uninitialised pointer bug in etm_setup_aux() coresight: add module license misc: mic: remove the MIC drivers interconnect: qcom: use icc_sync state for sm8[12]50 interconnect: qcom: Ensure that the floor bandwidth value is enforced interconnect: qcom: sc7180: Init BCMs before creating the nodes interconnect: qcom: sdm845: Init BCMs before creating the nodes interconnect: Aggregate before setting initial bandwidth interconnect: qcom: sdm845: Enable keepalive for the MM1 BCM

Linus Torvalds committed 6 years ago

Commit 31f02002 parents 9c75b68 d1b35d695 files · +34 −26793Browse files

Showing the changes to include/uapi/linux (2 of 95 files). Show all

Unified · Split

2 files
  1. include/uapi/linux/mic_common.h +0 −235
  2. include/uapi/linux/mic_ioctl.h +0 −77
include/uapi/linux/mic_common.h+0−235
@@ -1,235 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/*
3− * Intel MIC Platform Software Stack (MPSS)
4− *
5− * Copyright(c) 2013 Intel Corporation.
6− *
7− * This program is free software; you can redistribute it and/or modify
8− * it under the terms of the GNU General Public License, version 2, as
9− * published by the Free Software Foundation.
10− *
11− * This program is distributed in the hope that it will be useful, but
12− * WITHOUT ANY WARRANTY; without even the implied warranty of
13− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14− * General Public License for more details.
15− *
16− * The full GNU General Public License is included in this distribution in
17− * the file called "COPYING".
18− *
19− * Intel MIC driver.
20− *
21− */
22−#ifndef __MIC_COMMON_H_
23−#define __MIC_COMMON_H_
24−
25−#include <linux/virtio_ring.h>
26−
27−#define __mic_align(a, x) (((a) + (x) - 1) & ~((x) - 1))
28−
29−/**
30− * struct mic_device_desc: Virtio device information shared between the
31− * virtio driver and userspace backend
32− *
33− * @type: Device type: console/network/disk etc. Type 0/-1 terminates.
34− * @num_vq: Number of virtqueues.
35− * @feature_len: Number of bytes of feature bits. Multiply by 2: one for
36− host features and one for guest acknowledgements.
37− * @config_len: Number of bytes of the config array after virtqueues.
38− * @status: A status byte, written by the Guest.
39− * @config: Start of the following variable length config.
40− */
41−struct mic_device_desc {
42− __s8 type;
43− __u8 num_vq;
44− __u8 feature_len;
45− __u8 config_len;
46− __u8 status;
47− __le64 config[0];
48−} __attribute__ ((aligned(8)));
49−
50−/**
51− * struct mic_device_ctrl: Per virtio device information in the device page
52− * used internally by the host and card side drivers.
53− *
54− * @vdev: Used for storing MIC vdev information by the guest.
55− * @config_change: Set to 1 by host when a config change is requested.
56− * @vdev_reset: Set to 1 by guest to indicate virtio device has been reset.
57− * @guest_ack: Set to 1 by guest to ack a command.
58− * @host_ack: Set to 1 by host to ack a command.
59− * @used_address_updated: Set to 1 by guest when the used address should be
60− * updated.
61− * @c2h_vdev_db: The doorbell number to be used by guest. Set by host.
62− * @h2c_vdev_db: The doorbell number to be used by host. Set by guest.
63− */
64−struct mic_device_ctrl {
65− __le64 vdev;
66− __u8 config_change;
67− __u8 vdev_reset;
68− __u8 guest_ack;
69− __u8 host_ack;
70− __u8 used_address_updated;
71− __s8 c2h_vdev_db;
72− __s8 h2c_vdev_db;
73−} __attribute__ ((aligned(8)));
74−
75−/**
76− * struct mic_bootparam: Virtio device independent information in device page
77− *
78− * @magic: A magic value used by the card to ensure it can see the host
79− * @h2c_config_db: Host to Card Virtio config doorbell set by card
80− * @node_id: Unique id of the node
81− * @h2c_scif_db - Host to card SCIF doorbell set by card
82− * @c2h_scif_db - Card to host SCIF doorbell set by host
83− * @scif_host_dma_addr - SCIF host queue pair DMA address
84− * @scif_card_dma_addr - SCIF card queue pair DMA address
85− */
86−struct mic_bootparam {
87− __le32 magic;
88− __s8 h2c_config_db;
89− __u8 node_id;
90− __u8 h2c_scif_db;
91− __u8 c2h_scif_db;
92− __u64 scif_host_dma_addr;
93− __u64 scif_card_dma_addr;
94−} __attribute__ ((aligned(8)));
95−
96−/**
97− * struct mic_device_page: High level representation of the device page
98− *
99− * @bootparam: The bootparam structure is used for sharing information and
100− * status updates between MIC host and card drivers.
101− * @desc: Array of MIC virtio device descriptors.
102− */
103−struct mic_device_page {
104− struct mic_bootparam bootparam;
105− struct mic_device_desc desc[0];
106−};
107−/**
108− * struct mic_vqconfig: This is how we expect the device configuration field
109− * for a virtqueue to be laid out in config space.
110− *
111− * @address: Guest/MIC physical address of the virtio ring
112− * (avail and desc rings)
113− * @used_address: Guest/MIC physical address of the used ring
114− * @num: The number of entries in the virtio_ring
115− */
116−struct mic_vqconfig {
117− __le64 address;
118− __le64 used_address;
119− __le16 num;
120−} __attribute__ ((aligned(8)));
121−
122−/*
123− * The alignment to use between consumer and producer parts of vring.
124− * This is pagesize for historical reasons.
125− */
126−#define MIC_VIRTIO_RING_ALIGN 4096
127−
128−#define MIC_MAX_VRINGS 4
129−#define MIC_VRING_ENTRIES 128
130−
131−/*
132− * Max vring entries (power of 2) to ensure desc and avail rings
133− * fit in a single page
134− */
135−#define MIC_MAX_VRING_ENTRIES 128
136−
137−/**
138− * Max size of the desc block in bytes: includes:
139− * - struct mic_device_desc
140− * - struct mic_vqconfig (num_vq of these)
141− * - host and guest features
142− * - virtio device config space
143− */
144−#define MIC_MAX_DESC_BLK_SIZE 256
145−
146−/**
147− * struct _mic_vring_info - Host vring info exposed to userspace backend
148− * for the avail index and magic for the card.
149− *
150− * @avail_idx: host avail idx
151− * @magic: A magic debug cookie.
152− */
153−struct _mic_vring_info {
154− __u16 avail_idx;
155− __le32 magic;
156−};
157−
158−/**
159− * struct mic_vring - Vring information.
160− *
161− * @vr: The virtio ring.
162− * @info: Host vring information exposed to the userspace backend for the
163− * avail index and magic for the card.
164− * @va: The va for the buffer allocated for vr and info.
165− * @len: The length of the buffer required for allocating vr and info.
166− */
167−struct mic_vring {
168− struct vring vr;
169− struct _mic_vring_info *info;
170− void *va;
171− int len;
172−};
173−
174−#define mic_aligned_desc_size(d) __mic_align(mic_desc_size(d), 8)
175−
176−#ifndef INTEL_MIC_CARD
177−static inline unsigned mic_desc_size(const struct mic_device_desc *desc)
178−{
179− return sizeof(*desc) + desc->num_vq * sizeof(struct mic_vqconfig)
180− + desc->feature_len * 2 + desc->config_len;
181−}
182−
183−static inline struct mic_vqconfig *
184−mic_vq_config(const struct mic_device_desc *desc)
185−{
186− return (struct mic_vqconfig *)(desc + 1);
187−}
188−
189−static inline __u8 *mic_vq_features(const struct mic_device_desc *desc)
190−{
191− return (__u8 *)(mic_vq_config(desc) + desc->num_vq);
192−}
193−
194−static inline __u8 *mic_vq_configspace(const struct mic_device_desc *desc)
195−{
196− return mic_vq_features(desc) + desc->feature_len * 2;
197−}
198−static inline unsigned mic_total_desc_size(struct mic_device_desc *desc)
199−{
200− return mic_aligned_desc_size(desc) + sizeof(struct mic_device_ctrl);
201−}
202−#endif
203−
204−/* Device page size */
205−#define MIC_DP_SIZE 4096
206−
207−#define MIC_MAGIC 0xc0ffee00
208−
209−/**
210− * enum mic_states - MIC states.
211− */
212−enum mic_states {
213− MIC_READY = 0,
214− MIC_BOOTING,
215− MIC_ONLINE,
216− MIC_SHUTTING_DOWN,
217− MIC_RESETTING,
218− MIC_RESET_FAILED,
219− MIC_LAST
220−};
221−
222−/**
223− * enum mic_status - MIC status reported by card after
224− * a host or card initiated shutdown or a card crash.
225− */
226−enum mic_status {
227− MIC_NOP = 0,
228− MIC_CRASHED,
229− MIC_HALTED,
230− MIC_POWER_OFF,
231− MIC_RESTART,
232− MIC_STATUS_LAST
233−};
234−
235−#endif
include/uapi/linux/mic_ioctl.h+0−77
@@ -1,77 +0,0 @@
1−/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
2−/*
3− * Intel MIC Platform Software Stack (MPSS)
4− *
5− * Copyright(c) 2013 Intel Corporation.
6− *
7− * This program is free software; you can redistribute it and/or modify
8− * it under the terms of the GNU General Public License, version 2, as
9− * published by the Free Software Foundation.
10− *
11− * This program is distributed in the hope that it will be useful, but
12− * WITHOUT ANY WARRANTY; without even the implied warranty of
13− * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14− * General Public License for more details.
15− *
16− * The full GNU General Public License is included in this distribution in
17− * the file called "COPYING".
18− *
19− * Intel MIC Host driver.
20− *
21− */
22−#ifndef _MIC_IOCTL_H_
23−#define _MIC_IOCTL_H_
24−
25−#include <linux/types.h>
26−
27−/*
28− * mic_copy - MIC virtio descriptor copy.
29− *
30− * @iov: An array of IOVEC structures containing user space buffers.
31− * @iovcnt: Number of IOVEC structures in iov.
32− * @vr_idx: The vring index.
33− * @update_used: A non zero value results in used index being updated.
34− * @out_len: The aggregate of the total length written to or read from
35− * the virtio device.
36− */
37−struct mic_copy_desc {
38−#ifdef __KERNEL__
39− struct iovec __user *iov;
40−#else
41− struct iovec *iov;
42−#endif
43− __u32 iovcnt;
44− __u8 vr_idx;
45− __u8 update_used;
46− __u32 out_len;
47−};
48−
49−/*
50− * Add a new virtio device
51− * The (struct mic_device_desc *) pointer points to a device page entry
52− * for the virtio device consisting of:
53− * - struct mic_device_desc
54− * - struct mic_vqconfig (num_vq of these)
55− * - host and guest features
56− * - virtio device config space
57− * The total size referenced by the pointer should equal the size returned
58− * by desc_size() in mic_common.h
59− */
60−#define MIC_VIRTIO_ADD_DEVICE _IOWR('s', 1, struct mic_device_desc *)
61−
62−/*
63− * Copy the number of entries in the iovec and update the used index
64− * if requested by the user.
65− */
66−#define MIC_VIRTIO_COPY_DESC _IOWR('s', 2, struct mic_copy_desc *)
67−
68−/*
69− * Notify virtio device of a config change
70− * The (__u8 *) pointer points to config space values for the device
71− * as they should be written into the device page. The total size
72− * referenced by the pointer should equal the config_len field of struct
73− * mic_device_desc.
74− */
75−#define MIC_VIRTIO_CONFIG_CHANGE _IOWR('s', 5, __u8 *)
76−
77−#endif