ligd
83a3b969a3
rptun: fix use after free caused by API wrong order
...
remove list delete from rptun_dev_stop
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:53:49 -07:00
ligd
2fae0af914
rptun: metal_init only call once
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:53:49 -07:00
ligd
af3600436e
perf: avoid div zero if up_perf_init() hasn't init
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:42:00 -07:00
ligd
2cfea55f95
armv7-r: idle stack should align with 8
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:42:00 -07:00
ligd
f3063ce12b
armv7-a: align stack_top code with armv7-r
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:42:00 -07:00
ligd
ea03d06ab3
tmpfs: fix tmpfs_read overwrite after seek over tfo_size
...
reproduce:
fs = open("tmpfs", xx);
lseek(fd, 256, SEEK_END); // filep->f_pos = size + 256
read(fd, buf, len); // overwrite
resolve:
directly return 0 when seek over tfo_size
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:40:28 -07:00
jianglianfang
d5a8746be8
sim framebuffer: Optimize the timing of window to open and to close
...
The window opens when the fb opens and closes when the fb closes.
test step: run fb demo, 1. ./nuttx 2. fb
Signed-off-by: jianglianfang <jianglianfang@xiaomi.com>
2023-08-03 10:36:17 -07:00
chenrun1
eb0a43f4cf
fs_procfsproc:Fix the wrong position of information display, integrate the fd information of socket and file
...
By left-aligned display, the effect is as follows (0, 1, 2 is fd information, 3 is sd information)
FD OFLAGS TYPE POS PATH
0 3 1 0 /dev/console
1 3 1 0 /dev/console
2 3 1 0 /dev/console
3 65 2
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2023-08-03 10:33:53 -07:00
chenrun1
9381e929dd
procfsproc:Optimize fd information output format
...
Signed-off-by: chenrun1 <chenrun1@xiaomi.com>
2023-08-03 10:33:53 -07:00
yinshengkai
e3c637baf4
fs: procfs add show file typee
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-08-03 10:33:53 -07:00
ligd
bfe962ce2c
pm: fix second time add wakelock dq caused error
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:16:41 -07:00
ligd
d313248a5b
queue: add dq_inqueue & sq_inqueue support
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:16:41 -07:00
ligd
ebaea6bd9f
sim: set loop thread priority to configurable
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 10:15:43 -07:00
makejian
4e70d59c3b
crypto: reduce software algorithm size
...
not compile the software algorithm file when CONFIG_CRYPTO_CRYPTODEV_SOFTWARE not set
Signed-off-by: makejian <makejian@xiaomi.com>
2023-08-03 10:14:38 -07:00
makejian
6676853589
crypto: add config of software algorithm
...
software algorithm not used by default and managed by respective config
Signed-off-by: makejian <makejian@xiaomi.com>
2023-08-03 10:14:38 -07:00
yinshengkai
9dabcf9ad2
sched: add CRITMONITOR time out panic
...
Signed-off-by: yinshengkai <yinshengkai@xiaomi.com>
2023-08-03 10:08:12 -07:00
ligd
395fa73870
sched: group_killchildren send signo SIGQUIT before cancel it
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 08:06:33 -07:00
simbit18
2868e28837
fix incorrect comments
...
stm32_bh1750.c: barometer -> ambient light sensor
xmc4_max6675.c: barometer -> temperature
esp32_max6675.c: barometer -> temperature
esp32s2_max6675.c: barometer -> temperature
2023-08-03 08:04:51 -07:00
ligd
0383377d78
rpmsg_socket: rpmsg_socket_ns_bound() with lock
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 08:01:31 -07:00
ligd
17010ff811
rpmsg_socket: move nameid outof user define space
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 08:01:31 -07:00
zhangyuan21
a10cc49e67
Revert "newlib: libc: memcpy M-profile PACBTI-enablement"
...
This reverts commit 9fa097ab69
.
2023-08-03 07:03:39 -07:00
Michal Lenc
0f6a5e50c4
ioexpander: add option to register GPIO by name for IOexpander
...
Function gpio_lower_half_byname() was added to support registration of
GPIO pin by name as supported for IOexpander. Some of the code is wrapped
in new static function gpio_lower_half_internal() to avoid code
duplication.
Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2023-08-03 07:02:12 -07:00
Michal Lenc
bf90361895
ioexpander: add support for pcf8575 expander
...
This adds support for 16 bit io expander pcf8575. The driver is basically
the same as for pcf8574 however it is for 16 bits instead of 8 bits. Since
pcf8575 and pcf8574 can be both used on the same i2c bus the driver for
pcf8575 is implemented in a different file to reduce the code size
and complexity and to have less if statements in the driver.
Signed-off-by: Michal Lenc <michallenc@seznam.cz>
2023-08-03 06:52:27 -07:00
simbit18
580d09b5a1
Fix Kconfig style
...
Remove spaces from Kconfig
2023-08-03 15:40:24 +02:00
ligd
1552e52e14
signal: fix group signal can't dispatch some parent group twice
...
reproduce:
static void *pthread(void *arg)
{
system(arg);
}
void test (int argc, char *argv[])
{
pthread_create(&pthread0, &attr, pthread, argv[1]);
pthread_create(&pthread1, &attr, pthread, argv[2]);
}
only one pthread system() returnd, othres hanged
rootcause:
As we known, system() will create a new task called:
system -c XX
The example:
parent group child groups
pthread0 -> waitpid() -> system -c ps -> exit() -> nxtask_signalparent()
pthread1 -> waitpid() -> system -c ls -> exit() -> nxtask_signalparent()
Each child group exit with function nxtask_signalparent(),
As we expect:
system -c ps will signal pthread0
system -c ls will signal pthread1
But actually:
system -c ps will signal pthread0/1
system -c ls will signal pthread0/1
As the spec, we know, this behavior is normal:
https://man7.org/linux/man-pages/man2/sigwaitinfo.2.html
So for this situation, when the signo is SIGCHLD, we broadcast.
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 03:35:59 -07:00
wangchen
5c798dd297
inet/inet_sockif.c:In tcp protocol, Add random ports during the listening phase, if no ports are bound
...
In tcp protocol, if no ports are bound, Add random ports during the listening phase
libuvtestcase:
TEST_IMPL(tcp_listen_without_bind) {
int r;
uv_tcp_t server;
r = uv_tcp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_listen((uv_stream_t*)&server, 128, NULL);
ASSERT(r == 0);
MAKE_VALGRIND_HAPPY();
return 0;
}
Signed-off-by: wangchen <wangchen41@xiaomi.com>
2023-08-03 03:24:23 -07:00
wangchen
d528d2c410
net/local/local_sockif.c:add local_getpeername function implementation
...
this testcast
TEST_IMPL(udp_send_unix) {
/* Test that "uv_udp_send()" supports sending over
a "sockaddr_un" address. */
struct sockaddr_un addr;
uv_udp_t handle;
uv_udp_send_t req;
uv_loop_t* loop;
uv_buf_t buf = uv_buf_init("PING", 4);
int fd;
int r;
loop = uv_default_loop();
memset(&addr, 0, sizeof addr);
addr.sun_family = AF_UNIX;
ASSERT(strlen(TEST_PIPENAME) < sizeof(addr.sun_path));
memcpy(addr.sun_path, TEST_PIPENAME, strlen(TEST_PIPENAME));
fd = socket(AF_UNIX, SOCK_STREAM, 0);
ASSERT(fd >= 0);
unlink(TEST_PIPENAME);
ASSERT(0 == bind(fd, (const struct sockaddr*)&addr, sizeof addr));
ASSERT(0 == listen(fd, 1));
r = uv_udp_init(loop, &handle);
ASSERT(r == 0);
r = uv_udp_open(&handle, fd);
ASSERT(r == 0);
uv_run(loop, UV_RUN_DEFAULT);
r = uv_udp_send(&req,
&handle,
&buf,
1,
(const struct sockaddr*) &addr,
NULL);
ASSERT(r == 0);
uv_close((uv_handle_t*)&handle, NULL);
uv_run(loop, UV_RUN_DEFAULT);
close(fd);
unlink(TEST_PIPENAME);
MAKE_VALGRIND_HAPPY();
return 0;
}
Signed-off-by: wangchen <wangchen41@xiaomi.com>
2023-08-03 03:23:17 -07:00
yangguangcai
f324d1d8dd
SMP: fix repeat entry oneshot_tick_start
...
Situation:
Assume we have 2 cpus.
CPU0 CPU1
1. -> nxsched_alarm_expiration
2. -> nxshced_timer_start
3. -> ONESHOT_TICK_START
4. now timer in IRQ
5. in thread
6. -> wd_start
7. -> nxshced_timer_start
8. -> ONESHOT_TICK_START
9. reentry timer crash
Fix:
Enter critical section before nxsched_timer_start
Signed-off-by: yangguangcai <yangguangcai@xiaomi.com>
2023-08-03 03:20:40 -07:00
makejian
d5041420a3
crypto: porting Curve25519 algorithm into nuttx crypto
...
Signed-off-by: makejian <makejian@xiaomi.com>
2023-08-03 03:20:13 -07:00
zhangyuan21
79242cc1e7
arm64: set cpuid according to mpidr
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 03:19:19 -07:00
zhangyuan21
dc55205ee5
arch/arm64: get_cpu_id according to the correct affinity level
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 03:19:19 -07:00
zhangyuan21
f2dc9402f6
assert: Remove unnecessary disable interrupts code
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 03:17:22 -07:00
zhangyuan21
3aa2aa4703
assert: add more information to panic notifier
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 03:17:22 -07:00
zhangyuan21
bfab486611
assert: add panic notifier data for notify more information
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 03:17:22 -07:00
zhangyuan21
ef48dec9f9
assert: Stop scheduling when an assert is invoked to prevent running task change
...
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 03:17:22 -07:00
ligd
9b6e5f22f9
assert: thread assert don't interrupt by IRQ
...
Signed-off-by: ligd <liguiding1@xiaomi.com>
2023-08-03 03:17:22 -07:00
wangchen
b10d6be17a
net:Add check for address binding
...
Signed-off-by: wangchen <wangchen41@xiaomi.com>
2023-08-03 03:16:31 -07:00
makejian
b6c2362c6a
crypto: fix above array bounds warning in nuttx crypto
...
crypto.c:440:38: warning: array subscript 24 is above array bounds of 'int[24]' [-Warray-bounds]
440 | crypto_drivers[driverid].cc_alg[alg] == 0)
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
In file included from crypto.c:37:
nuttx/include/crypto/cryptodev.h:269:7: note: while referencing 'cc_alg'
269 | int cc_alg[CRYPTO_ALGORITHM_MAX + 1];
following commit cbf8475b93
(1)alg need to blong to [1, CRYPTO_ALGORITHM_MAX + 1] in sanity checks
(2)clear alg algorithm when alg blongs to [1, CRYPTO_ALGORITHM_MAX + 1)
(3)clear all algorithms when alg equals to CRYPTO_ALGORITHM_MAX + 1
Signed-off-by: makejian <makejian@xiaomi.com>
2023-08-03 03:14:46 -07:00
makejian
5e0e027880
crypto: memory requested by asymmetric encryption is not initialized
...
Using uninitialized memory for output parameters is at risk of error in asymmetric encryption process
Signed-off-by: makejian <makejian@xiaomi.com>
2023-08-03 03:14:46 -07:00
makejian
a5dc00f941
crypto: fix bug in the asymmetric encryption process
...
(1)uninitialized memory cause release failure
(2)wrong release timing
Signed-off-by: makejian <makejian@xiaomi.com>
2023-08-03 03:14:46 -07:00
makejian
e0fa78f8f3
crypto: fix aesxts and hmac crash bug
...
(1)aesxts uses correct size to memcpy
(2)prevent hmac null pointer of struct crde
Signed-off-by: makejian <makejian@xiaomi.com>
2023-08-03 03:14:46 -07:00
zhangyuan21
671c5dc3d8
sched/pthread: Don't do cancel when it is already in the exit process
...
When the task is already in the exit process,
do not execute pthread cancel and return ESRCH.
Signed-off-by: zhangyuan21 <zhangyuan21@xiaomi.com>
2023-08-03 03:12:36 -07:00
wangchen
14202651b2
net:Resolve udp disconnection, status not synchronized error
...
libuvtestcase:
TEST_IMPL(udp_connect) {
RETURN_SKIP(
"IBMi PASE's UDP connection can not be disconnected with AF_UNSPEC.");
uv_udp_send_t req;
struct sockaddr_in ext_addr;
struct sockaddr_in tmp_addr;
int r;
int addrlen;
close_cb_called = 0;
cl_send_cb_called = 0;
sv_recv_cb_called = 0;
ASSERT(0 == uv_ip4_addr("[0.0.0.0](http://0.0.0.0/ )", TEST_PORT, &lo_addr));
r = uv_udp_init(uv_default_loop(), &server);
ASSERT(r == 0);
r = uv_udp_bind(&server, (const struct sockaddr*) &lo_addr, 0);
ASSERT(r == 0);
r = uv_udp_recv_start(&server, alloc_cb, sv_recv_cb);
ASSERT(r == 0);
r = uv_udp_init(uv_default_loop(), &client);
ASSERT(r == 0);
buf = uv_buf_init("EXIT", 4);
/* connect() to INADDR_ANY fails on Windows wih WSAEADDRNOTAVAIL */
ASSERT_EQ(0, uv_ip4_addr("[0.0.0.0](http://0.0.0.0/ )", TEST_PORT, &tmp_addr));
r = uv_udp_connect(&client, (const struct sockaddr*) &tmp_addr);
ASSERT_EQ(r, UV_EADDRNOTAVAIL);
ASSERT_EQ(r, 0);
r = uv_udp_connect(&client, NULL);
ASSERT_EQ(r, 0);
ASSERT(0 == uv_ip4_addr("[8.8.8.8](http://8.8.8.8/ )", TEST_PORT, &ext_addr));
ASSERT(0 == uv_ip4_addr("[127.0.0.1](http://127.0.0.1/ )", TEST_PORT, &lo_addr));
r = uv_udp_connect(&client, (const struct sockaddr*) &lo_addr);
ASSERT(r == 0);
r = uv_udp_connect(&client, (const struct sockaddr*) &ext_addr);
ASSERT(r == UV_EISCONN);
addrlen = sizeof(tmp_addr);
r = uv_udp_getpeername(&client, (struct sockaddr*) &tmp_addr, &addrlen);
ASSERT(r == 0);
/* To send messages in connected UDP sockets addr must be NULL */
r = uv_udp_try_send(&client, &buf, 1, (const struct sockaddr*) &lo_addr);
ASSERT(r == UV_EISCONN);
r = uv_udp_try_send(&client, &buf, 1, NULL);
ASSERT(r == 4);
r = uv_udp_try_send(&client, &buf, 1, (const struct sockaddr*) &ext_addr);
ASSERT(r == UV_EISCONN);
r = uv_udp_connect(&client, NULL);
ASSERT(r == 0);
r = uv_udp_connect(&client, NULL);
ASSERT(r == UV_ENOTCONN);
addrlen = sizeof(tmp_addr);
r = uv_udp_getpeername(&client, (struct sockaddr*) &tmp_addr, &addrlen);
ASSERT(r == UV_ENOTCONN);
/* To send messages in disconnected UDP sockets addr must be set */
r = uv_udp_try_send(&client, &buf, 1, (const struct sockaddr*) &lo_addr);
ASSERT(r == 4);
r = uv_udp_try_send(&client, &buf, 1, NULL);
ASSERT(r == UV_EDESTADDRREQ);
r = uv_udp_connect(&client, (const struct sockaddr*) &lo_addr);
ASSERT(r == 0);
r = uv_udp_send(&req,
&client,
&buf,
1,
(const struct sockaddr*) &lo_addr,
cl_send_cb);
ASSERT(r == UV_EISCONN);
r = uv_udp_send(&req, &client, &buf, 1, NULL, cl_send_cb);
ASSERT(r == 0);
uv_run(uv_default_loop(), UV_RUN_DEFAULT);
ASSERT(close_cb_called == 2);
ASSERT(sv_recv_cb_called == 4);
ASSERT(cl_send_cb_called == 2);
ASSERT(client.send_queue_size == 0);
ASSERT(server.send_queue_size == 0);
MAKE_VALGRIND_HAPPY();
return 0;
}
Signed-off-by: wangchen <wangchen41@xiaomi.com>
2023-08-03 03:12:17 -07:00
yangjiao
ebfdda377b
sched/mqueue/mq_sndinternal.c: Update the return value in description "Message queue opened not opened for writing".
...
Standard POSIX specification in URL “https://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_timedsend.html” requires that "EBADF" be returned when message queue not opened for writing.So i update the related descriptions in this file, no function changed.
Signed-off-by: yangjiao <yangjiao@xiaomi.com>
2023-08-03 03:10:56 -07:00
yangjiao
a543950951
fs/mqueue/mq_open.c: Add the judgment for mq_attr is NULL.
...
Signed-off-by: yangjiao <yangjiao@xiaomi.com>
2023-08-03 03:10:56 -07:00
yangjiao
bef756c004
fs/mqueue: Fix the wrong field type in mq_attr as the spec and add the logical judgment to deal with the condition when mq_maxmsg or mq_msgsize is less than zero or equal to zero.
...
In POSIX standard spec https://pubs.opengroup.org/onlinepubs/7908799/xsh/mqueue.h.html , the field type in mq_attr should be long not size_t. And no logical judgment when mq_maxmsg <= 0 or mq_msgsize <= 0. In this change, i update the field type in mq_attr, and add the missing logical judgment.
Signed-off-by: yangjiao <yangjiao@xiaomi.com>
2023-08-03 03:10:56 -07:00
yangjiao
59fd10000e
sched/mqueue/mq_send: fix the wrong return value in mq_send function. And add the condition if message priority equal to MQ_PRIO_MAX.
...
Standard POSIX specification in URL “https://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_send.html” requires that "EBADF" be returned when mqdes is not open for writing. And message priorities range from 0 to {MQ_PRIO_MAX}-1. In this change, i update them to follow POSIX spec.
Signed-off-by: yangjiao <yangjiao@xiaomi.com>
2023-08-03 03:10:56 -07:00
yangjiao
391bf7b37c
sched/mqueue/mq_receive: fix the wrong return value when message queue is not opened for reading.
...
In POSIX testcase "open_posix_testsuite/conformance/interfaces/mq_receive/11-2.c", it will return "EPERM" when message queue is not opened for reading, but the standard POSIX specification in URL “https://pubs.opengroup.org/onlinepubs/9699919799/functions/mq_receive.html” requires that "EBADF" be returned.So in this change, i update it.
Signed-off-by: yangjiao <yangjiao@xiaomi.com>
2023-08-03 03:10:56 -07:00
jianglianfang
b14cb6ccb4
driver/fb: fix that vtable.priv is not freed when fb register failed.
...
The vtable.priv is better to be assigned after fb is registered sucessfully.
Signed-off-by: jianglianfang <jianglianfang@xiaomi.com>
2023-08-03 03:10:34 -07:00
yanghuatao
51240c658f
fix warning: [-Wunknown-pragmas]
...
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/hidl/HidlSupport.h:33: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
33 | #pragma clang diagnostic push
|
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/hidl/HidlSupport.h:34: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
34 | #pragma clang diagnostic ignored "-Wpadded"
|
In file included from /mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/android/hidl/base/1.0/types.h:4,
from /mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/android/hidl/base/1.0/IBase.h:4,
from android/hidl/base/1.0/BaseAll.cpp:1:
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/hidl/HidlSupport.h:40: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
40 | #pragma clang diagnostic pop
|
In file included from /mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/android/hidl/base/1.0/IBase.h:4,
from android/hidl/base/1.0/BaseAll.cpp:1:
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/android/hidl/base/1.0/types.h:188: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
188 | #pragma clang diagnostic push
|
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/android/hidl/base/1.0/types.h:189: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
189 | #pragma clang diagnostic ignored "-Wc++17-extensions"
|
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/android/hidl/base/1.0/types.h:195: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
195 | #pragma clang diagnostic pop
|
CXX: LightRefBase.cpp In file included from base/HidlSupport.cpp:18:
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/hidl/HidlSupport.h:33: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
33 | #pragma clang diagnostic push
|
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/hidl/HidlSupport.h:34: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
34 | #pragma clang diagnostic ignored "-Wpadded"
|
In file included from base/HidlSupport.cpp:18:
/mnt/yang/vela_keystore_waring/apps/external/android/system/libhidl/base/include/hidl/HidlSupport.h:40: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
40 | #pragma clang diagnostic pop
Signed-off-by: yanghuatao <yanghuatao@xiaomi.com>
2023-08-03 00:52:53 -07:00