[PATCH v3 2/5] lib: Add Sed-opal library
kbuild test robot
lkp at intel.com
Mon Dec 19 19:21:49 PST 2016
Hi Scott,
[auto build test ERROR on linus/master]
[also build test ERROR on v4.9 next-20161219]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
url: https://github.com/0day-ci/linux/commits/Scott-Bauer/include-Add-definitions-for-sed/20161220-110214
config: i386-tinyconfig (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
# save the attached .config to linux build tree
make ARCH=i386
All error/warnings (new ones prefixed by >>):
In file included from lib/sed.c:20:0:
>> include/linux/sed-opal.h:37:40: warning: 'struct request_queue' declared inside parameter list will not be visible outside of this definition or declaration
struct opal_dev *alloc_opal_dev(struct request_queue *q);
^~~~~~~~~~~~~
lib/sed.c: In function 'fdev_sed_ioctl':
>> lib/sed.c:161:12: error: dereferencing pointer to incomplete type 'struct file'
if (!filep->f_sedctx || !filep->f_sedctx->ops || !filep->f_sedctx->dev)
^~
--
In file included from lib/sed-opal.c:29:0:
>> include/linux/sed-opal.h:37:40: warning: 'struct request_queue' declared inside parameter list will not be visible outside of this definition or declaration
struct opal_dev *alloc_opal_dev(struct request_queue *q);
^~~~~~~~~~~~~
lib/sed-opal.c: In function 'opal_discovery0_end':
lib/sed-opal.c:276:6: warning: unused variable 'error' [-Wunused-variable]
int error = 0;
^~~~~
lib/sed-opal.c: In function 'response_parse':
>> lib/sed-opal.c:793:15: error: invalid storage class for function 'response_get_string'
static size_t response_get_string(const struct parsed_resp *resp, int n,
^~~~~~~~~~~~~~~~~~~
>> lib/sed-opal.c:793:1: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
static size_t response_get_string(const struct parsed_resp *resp, int n,
^~~~~~
>> lib/sed-opal.c:817:12: error: invalid storage class for function 'response_get_u64'
static u64 response_get_u64(const struct parsed_resp *resp, int n)
^~~~~~~~~~~~~~~~
>> lib/sed-opal.c:846:11: error: invalid storage class for function 'response_status'
static u8 response_status(const struct parsed_resp *resp)
^~~~~~~~~~~~~~~
>> lib/sed-opal.c:866:12: error: invalid storage class for function 'parse_and_check_status'
static int parse_and_check_status(struct opal_dev *dev)
^~~~~~~~~~~~~~~~~~~~~~
>> lib/sed-opal.c:883:13: error: invalid storage class for function 'clear_opal_cmd'
static void clear_opal_cmd(struct opal_cmd *cmd)
^~~~~~~~~~~~~~
>> lib/sed-opal.c:891:12: error: invalid storage class for function 'start_opal_session_cont'
static int start_opal_session_cont(struct opal_dev *dev)
^~~~~~~~~~~~~~~~~~~~~~~
>> lib/sed-opal.c:913:20: error: invalid storage class for function 'opal_dev_get'
static inline void opal_dev_get(struct opal_dev *dev)
^~~~~~~~~~~~
>> lib/sed-opal.c:918:20: error: invalid storage class for function 'opal_dev_put'
static inline void opal_dev_put(struct opal_dev *dev)
^~~~~~~~~~~~
>> lib/sed-opal.c:923:12: error: invalid storage class for function 'add_suspend_info'
static int add_suspend_info(struct opal_dev *dev, struct opal_suspend_data *sus)
^~~~~~~~~~~~~~~~
>> lib/sed-opal.c:949:12: error: invalid storage class for function 'end_session_cont'
static int end_session_cont(struct opal_dev *dev)
^~~~~~~~~~~~~~~~
>> lib/sed-opal.c:956:12: error: invalid storage class for function 'finalize_and_send'
static int finalize_and_send(struct opal_dev *dev, struct opal_cmd *cmd,
^~~~~~~~~~~~~~~~~
>> lib/sed-opal.c:972:12: error: invalid storage class for function 'gen_key'
static int gen_key(struct opal_dev *dev)
^~~~~~~
>> lib/sed-opal.c:1002:12: error: invalid storage class for function 'get_active_key_cont'
static int get_active_key_cont(struct opal_dev *dev)
^~~~~~~~~~~~~~~~~~~
>> lib/sed-opal.c:1027:12: error: invalid storage class for function 'get_active_key'
static int get_active_key(struct opal_dev *dev)
^~~~~~~~~~~~~~
>> lib/sed-opal.c:1067:12: error: invalid storage class for function 'generic_lr_enable_disable'
static int generic_lr_enable_disable(struct opal_cmd *cmd,
^~~~~~~~~~~~~~~~~~~~~~~~~
>> lib/sed-opal.c:1107:19: error: invalid storage class for function 'enable_global_lr'
static inline int enable_global_lr(struct opal_cmd *cmd, u8 *uid,
^~~~~~~~~~~~~~~~
>> lib/sed-opal.c:1118:12: error: invalid storage class for function 'setup_locking_range'
static int setup_locking_range(struct opal_dev *dev)
^~~~~~~~~~~~~~~~~~~
>> lib/sed-opal.c:1183:12: error: invalid storage class for function 'start_generic_opal_session'
static int start_generic_opal_session(struct opal_dev *dev,
^~~~~~~~~~~~~~~~~~~~~~~~~~
vim +161 lib/sed.c
14 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15 * more details.
16 */
17
18 #include <linux/blkdev.h>
19 #include <linux/sed.h>
> 20 #include <linux/sed-opal.h>
21 #include <asm/uaccess.h>
22
23 int sed_save(struct sed_context *sed_ctx, struct sed_key *key)
24 {
25 switch (key->sed_type) {
26 case OPAL_LOCK_UNLOCK:
27 return opal_save(sed_ctx, key);
28 }
29
30 return -EOPNOTSUPP;
31 }
32
33 int sed_lock_unlock(struct sed_context *sed_ctx, struct sed_key *key)
34 {
35 switch (key->sed_type) {
36 case OPAL_LOCK_UNLOCK:
37 return opal_lock_unlock(sed_ctx, key);
38 }
39
40 return -EOPNOTSUPP;
41 }
42
43 int sed_take_ownership(struct sed_context *sed_ctx, struct sed_key *key)
44 {
45
46 switch (key->sed_type) {
47 case OPAL:
48 return opal_take_ownership(sed_ctx, key);
49 }
50
51 return -EOPNOTSUPP;
52 }
53
54 int sed_activate_lsp(struct sed_context *sed_ctx, struct sed_key *key)
55 {
56
57 switch (key->sed_type) {
58 case OPAL:
59 return opal_activate_lsp(sed_ctx, key);
60 }
61
62 return -EOPNOTSUPP;
63 }
64
65 int sed_set_pw(struct sed_context *sed_ctx, struct sed_key *key)
66 {
67
68 switch (key->sed_type) {
69 case OPAL_PW:
70 return opal_set_new_pw(sed_ctx, key);
71 }
72
73 return -EOPNOTSUPP;
74 }
75
76 int sed_activate_user(struct sed_context *sed_ctx, struct sed_key *key)
77 {
78
79 switch (key->sed_type) {
80 case OPAL_ACT_USR:
81 return opal_activate_user(sed_ctx, key);
82 }
83
84 return -EOPNOTSUPP;
85 }
86
87 int sed_reverttper(struct sed_context *sed_ctx, struct sed_key *key)
88 {
89
90 switch (key->sed_type) {
91 case OPAL:
92 return opal_reverttper(sed_ctx, key);
93 }
94
95 return -EOPNOTSUPP;
96 }
97
98 int sed_setup_locking_range(struct sed_context *sed_ctx, struct sed_key *key)
99 {
100
101 switch (key->sed_type) {
102 case OPAL_LR_SETUP:
103 return opal_setup_locking_range(sed_ctx, key);
104 }
105
106 return -EOPNOTSUPP;
107 }
108
109 int sed_adduser_to_lr(struct sed_context *sed_ctx, struct sed_key *key)
110 {
111
112 switch (key->sed_type) {
113 case OPAL_LOCK_UNLOCK:
114 return opal_add_user_to_lr(sed_ctx, key);
115 }
116
117 return -EOPNOTSUPP;
118 }
119
120 int sed_do_mbr(struct sed_context *sed_ctx, struct sed_key *key)
121 {
122
123 switch (key->sed_type) {
124 case OPAL_MBR_DATA:
125 return opal_enable_disable_shadow_mbr(sed_ctx, key);
126 }
127
128 return -EOPNOTSUPP;
129 }
130
131 int sed_erase_lr(struct sed_context *sed_ctx, struct sed_key *key)
132 {
133
134 switch (key->sed_type) {
135 case OPAL:
136 return opal_erase_locking_range(sed_ctx, key);
137 }
138
139 return -EOPNOTSUPP;
140 }
141
142 int sed_secure_erase_lr(struct sed_context *sed_ctx, struct sed_key *key)
143 {
144 switch (key->sed_type) {
145 case OPAL_ACT_USR:
146 return opal_secure_erase_locking_range(sed_ctx, key);
147
148 }
149 return -EOPNOTSUPP;
150 }
151
152 int fdev_sed_ioctl(struct file *filep, unsigned int cmd,
153 unsigned long arg)
154 {
155 struct sed_key key;
156 struct sed_context *sed_ctx;
157
158 if (!capable(CAP_SYS_ADMIN))
159 return -EACCES;
160
> 161 if (!filep->f_sedctx || !filep->f_sedctx->ops || !filep->f_sedctx->dev)
162 return -ENODEV;
163
164 sed_ctx = filep->f_sedctx;
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 6384 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-nvme/attachments/20161220/35b81b36/attachment-0001.gz>
More information about the Linux-nvme
mailing list