Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
e3419426
Commit
e3419426
authored
Jan 16, 2020
by
Herbert Xu
Browse files
Options
Browse Files
Download
Plain Diff
Merge
git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
Merge crypto tree to pick up hisilicon patch.
parents
b279997f
cb1eeb75
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
11 deletions
+28
-11
arch/arm/crypto/curve25519-glue.c
arch/arm/crypto/curve25519-glue.c
+7
-0
drivers/crypto/hisilicon/sec2/sec.h
drivers/crypto/hisilicon/sec2/sec.h
+3
-3
drivers/crypto/hisilicon/sec2/sec_crypto.c
drivers/crypto/hisilicon/sec2/sec_crypto.c
+6
-6
drivers/crypto/hisilicon/sec2/sec_main.c
drivers/crypto/hisilicon/sec2/sec_main.c
+12
-2
No files found.
arch/arm/crypto/curve25519-glue.c
View file @
e3419426
...
...
@@ -38,6 +38,13 @@ void curve25519_arch(u8 out[CURVE25519_KEY_SIZE],
}
EXPORT_SYMBOL
(
curve25519_arch
);
void
curve25519_base_arch
(
u8
pub
[
CURVE25519_KEY_SIZE
],
const
u8
secret
[
CURVE25519_KEY_SIZE
])
{
return
curve25519_arch
(
pub
,
secret
,
curve25519_base_point
);
}
EXPORT_SYMBOL
(
curve25519_base_arch
);
static
int
curve25519_set_secret
(
struct
crypto_kpp
*
tfm
,
const
void
*
buf
,
unsigned
int
len
)
{
...
...
drivers/crypto/hisilicon/sec2/sec.h
View file @
e3419426
...
...
@@ -40,7 +40,7 @@ struct sec_req {
int
req_id
;
/* Status of the SEC request */
in
t
fake_busy
;
atomic_
t
fake_busy
;
};
/**
...
...
@@ -132,8 +132,8 @@ struct sec_debug_file {
};
struct
sec_dfx
{
u64
send_cnt
;
u64
recv_cnt
;
atomic64_t
send_cnt
;
atomic64_t
recv_cnt
;
};
struct
sec_debug
{
...
...
drivers/crypto/hisilicon/sec2/sec_crypto.c
View file @
e3419426
...
...
@@ -120,7 +120,7 @@ static void sec_req_cb(struct hisi_qp *qp, void *resp)
return
;
}
__sync_add_and_fetch
(
&
req
->
ctx
->
sec
->
debug
.
dfx
.
recv_cnt
,
1
);
atomic64_inc
(
&
req
->
ctx
->
sec
->
debug
.
dfx
.
recv_cnt
);
req
->
ctx
->
req_op
->
buf_unmap
(
req
->
ctx
,
req
);
...
...
@@ -135,13 +135,13 @@ static int sec_bd_send(struct sec_ctx *ctx, struct sec_req *req)
mutex_lock
(
&
qp_ctx
->
req_lock
);
ret
=
hisi_qp_send
(
qp_ctx
->
qp
,
&
req
->
sec_sqe
);
mutex_unlock
(
&
qp_ctx
->
req_lock
);
__sync_add_and_fetch
(
&
ctx
->
sec
->
debug
.
dfx
.
send_cnt
,
1
);
atomic64_inc
(
&
ctx
->
sec
->
debug
.
dfx
.
send_cnt
);
if
(
ret
==
-
EBUSY
)
return
-
ENOBUFS
;
if
(
!
ret
)
{
if
(
req
->
fake_busy
)
if
(
atomic_read
(
&
req
->
fake_busy
)
)
ret
=
-
EBUSY
;
else
ret
=
-
EINPROGRESS
;
...
...
@@ -641,7 +641,7 @@ static void sec_skcipher_callback(struct sec_ctx *ctx, struct sec_req *req)
if
(
ctx
->
c_ctx
.
c_mode
==
SEC_CMODE_CBC
&&
req
->
c_req
.
encrypt
)
sec_update_iv
(
req
);
if
(
__sync_bool_compare_and_swap
(
&
req
->
fake_busy
,
1
,
0
)
)
if
(
atomic_cmpxchg
(
&
req
->
fake_busy
,
1
,
0
)
!=
1
)
sk_req
->
base
.
complete
(
&
sk_req
->
base
,
-
EINPROGRESS
);
sk_req
->
base
.
complete
(
&
sk_req
->
base
,
req
->
err_type
);
...
...
@@ -672,9 +672,9 @@ static int sec_request_init(struct sec_ctx *ctx, struct sec_req *req)
}
if
(
ctx
->
fake_req_limit
<=
atomic_inc_return
(
&
qp_ctx
->
pending_reqs
))
req
->
fake_busy
=
1
;
atomic_set
(
&
req
->
fake_busy
,
1
)
;
else
req
->
fake_busy
=
0
;
atomic_set
(
&
req
->
fake_busy
,
0
)
;
ret
=
ctx
->
req_op
->
get_res
(
ctx
,
req
);
if
(
ret
)
{
...
...
drivers/crypto/hisilicon/sec2/sec_main.c
View file @
e3419426
...
...
@@ -608,6 +608,14 @@ static const struct file_operations sec_dbg_fops = {
.
write
=
sec_debug_write
,
};
static
int
debugfs_atomic64_t_get
(
void
*
data
,
u64
*
val
)
{
*
val
=
atomic64_read
((
atomic64_t
*
)
data
);
return
0
;
}
DEFINE_DEBUGFS_ATTRIBUTE
(
fops_atomic64_t_ro
,
debugfs_atomic64_t_get
,
NULL
,
"%lld
\n
"
);
static
int
sec_core_debug_init
(
struct
sec_dev
*
sec
)
{
struct
hisi_qm
*
qm
=
&
sec
->
qm
;
...
...
@@ -628,9 +636,11 @@ static int sec_core_debug_init(struct sec_dev *sec)
debugfs_create_regset32
(
"regs"
,
0444
,
tmp_d
,
regset
);
debugfs_create_u64
(
"send_cnt"
,
0444
,
tmp_d
,
&
dfx
->
send_cnt
);
debugfs_create_file
(
"send_cnt"
,
0444
,
tmp_d
,
&
dfx
->
send_cnt
,
&
fops_atomic64_t_ro
);
debugfs_create_u64
(
"recv_cnt"
,
0444
,
tmp_d
,
&
dfx
->
recv_cnt
);
debugfs_create_file
(
"recv_cnt"
,
0444
,
tmp_d
,
&
dfx
->
recv_cnt
,
&
fops_atomic64_t_ro
);
return
0
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment