Commit Graph

4852 Commits

Author SHA1 Message Date
Jiang Jiang Jian
96b77c11ec Merge branch 'bugfix/mdns_incorrect_semaphore_use_v3.1' into 'release/v3.1'
mdns: use binary semaphore instead of mutex when searching (Backport 3.1)

See merge request idf/esp-idf!4479
2019-03-20 11:25:44 +08:00
Ivan Grokhotkov
471013f7e0 mdns: use binary semaphore instead of mutex when searching
mdns_search_once_t::lock is used to synchronize tasks (taken by one
task and given by the other) so it should not be a mutex.
Convert to semaphore, and rename to indicate its purpose.
2019-03-19 14:02:01 +00:00
Tian Hao
51e29d6d95 fix the bug assert(8192 0) in rwble.c 234 2019-03-19 12:52:22 +00:00
Jiang Jiang Jian
044cadbad3 Merge branch 'bugfix/mdns_add_remove_multiple_srv_3.1' into 'release/v3.1'
mdns: fix possible crash if tx packet contained answer to removed service (backport 3.1)

See merge request idf/esp-idf!4482
2019-03-17 14:34:49 +08:00
Jiang Jiang Jian
dda1af6e55 Merge branch 'bugfix/mdns_service_memory_leak_3.1' into 'release/v3.1'
mdns: fix memory leak when query for service plus various other fixes (Backport v3.1)

See merge request idf/esp-idf!4313
2019-03-17 14:28:35 +08:00
Jiang Jiang Jian
cea8c51527 Merge branch 'bugfix/cmake_psram_fix_flag_v3.1' into 'release/v3.1'
cmake: Fix psram workaround compiler flag application (backport v3.1)

See merge request idf/esp-idf!4365
2019-03-15 10:57:49 +08:00
David Cermak
d5938abf79 mdns: fix possible crash when probing on particular interface with duplicated service instances due to naming conflicts on network
Issue: MDNS server initially sends probing packets to resolve naming confilicts with already registered service instances. In case of a conflict, instance name is altered and probing restarts. Original instance however wasnnot removed from the structure and upon service removal only one entry was removed and a dangling service might have been kept in the structure to bring about a crash.
Resolution: Keep only one instance of a service in the probing structure.
2019-03-13 16:33:21 +01:00
David Cermak
58ed22461f mdns: enable pcbs before starting service thread to avoid updating pcb's internal variables from concurent tasks
possible race condition: user task runs mdns_init, which enables pcbs while mdns-task already created could execute enable/disable of the same pcbs if an appropriate system event received
2019-03-13 16:32:50 +01:00
David Cermak
ed84e5aef3 mdns: fix possible deadlock on mdns deinit calling mdns_free()
mnds_free() initiates stop and delete timer tasks, which after locking the mutex could lead to a dead lock in case timer task executed before deleting the task, as it would wait indefinitelly for unlocking the mutex. This condition is fixed by calling _mdns_stop_timer without locking the mutex, because there's no need to protect any data when stopping and deleting the timer task
2019-03-13 16:32:59 +01:00
David Cermak
f8310c4a67 mdsn: fix race condition in updating packet data from user task when failed to allocate or queue a new service
Issue: mdns_service_add API allocates and queues an action to be processed in mdns task context; when allocation or queueing fails, allocated structure needs to be freed. Function _mdns_free_service did not only fee all the structures, but also updates packet data.
Resolution: Moved removal of packet data outside of _mdns_free_service function.
2019-03-13 16:32:50 +01:00
David Cermak
03006a109b mdns: fix possible crash when packet scheduled to transmit contained service which might have been already removed
packets scheduled to transmit are pushed to action queue and removed from tx_queue_head structure, which is searched for all remaining services and while service is removed, then service questions/asnwers are also removed from this structure. This update fixes possible crash when packet is pushed to action queue, and when service is removed, its answers are removed from tx_queue_head, but not from action queue. this could lead to a crash when the packet is poped from action queue containing questions/answers to already removed (freed) service
2019-03-13 16:32:50 +01:00
zhiweijian
3d542b2530 Component/bt: add BLE adv report flow control 2019-03-12 15:15:21 +08:00
zwj
9f3bde6096 component/bt: add vendor hci cmd 2019-03-12 14:54:53 +08:00
Angus Gratton
e4d61154f2 cmake: Fix psram workaround compiler flag application
Previously, this compiler flag was not being applied
regardless of CONFIG_SPIRAM_CACHE_WORKAROUND setting.

Explanation: add_compile_options() only applies to
source files added after the function is run, or in
subdirectories added after the function is run. In
this case, no new source files were being added after
this function was run.
2019-03-11 16:02:36 +11:00
xiehang
f2f9d92131 fix the bug in auto Ip memory leak 2019-03-06 21:07:22 +08:00
xiehang
4c248f40aa fix the bug in auto Ip memory leak 2019-03-06 19:51:01 +08:00
David Cermak
b92def7b01 mdns: fix memory leak in pbuf if tcpipadapter failed to get netif 2019-03-06 06:28:55 +00:00
David Cermak
94defe35cc mdns: fix malfuctional query_txt
when running a query for a single txt, result entries were not created and attached to result structure. this issue was introduced when fixing memory leak in txt structure, which worked correctly for PTR queries, but caused trouble for TXT query.
2019-03-06 06:28:55 +00:00
David Cermak
0b48653ed0 mdns: fix possible crash when mdns_free called while action queue not empty 2019-03-06 06:28:55 +00:00
David Cermak
1ce0434373 mdns: fix memory leak when query for service receives multiple ptr entries for one instance
fixes redmine issue 27300
2019-03-06 06:28:55 +00:00
Jiang Jiang Jian
bc58f4b9ba Merge branch 'bugfix/cmake_stack_protector_v3.1' into 'release/v3.1'
esp32: disable stack protector for startup code (CMake) (backport v3.1)

See merge request idf/esp-idf!4251
2019-03-06 14:19:52 +08:00
Jiang Jiang Jian
2c3af8a18e Merge branch 'bugfix/fix_dig_gpio_unable_hold_bug_v3.1' into 'release/v3.1'
Bugfix/fix digital gpio unable hold bug  (backport v3.1)

See merge request idf/esp-idf!4354
2019-03-06 14:19:16 +08:00
Jiang Jiang Jian
39c6b2f904 Merge branch 'bugfix/btdm_fix_iOS_and_win10_compatibility_error_for_HID_v3.1' into 'release/v3.1'
Component/bt: fix iOS and win10 compatibility error  for HID (backport v3.1)

See merge request idf/esp-idf!4425
2019-03-06 14:12:31 +08:00
Ivan Grokhotkov
e5b4d2e01a Merge branch 'bugfix/make_get_coreid_volatile_backport_v3.1' into 'release/v3.1'
freertos: Make xPortGetCoreID() volatile (backport v3.1)

See merge request idf/esp-idf!4378
2019-03-06 11:26:06 +08:00
kooho
3fc09372f1 driver(gpio): fixed digital gpio unable hold bug during deep-sleep for release/v3.1 . 2019-03-06 11:22:48 +08:00
Angus Gratton
6685ca4771 Merge branch 'feature/add_api_get_rmt_idle_level_v3.1' into 'release/v3.1'
Bugfix:  Fixed some RMT related issues (backport v3.1)

See merge request idf/esp-idf!4356
2019-03-06 10:39:42 +08:00
zhiweijian
1b5a77eba9 Component/bt: fix iOS and win10 compatibility error for HID 2019-03-05 20:00:18 +08:00
Ivan Grokhotkov
8fffb9d172 esp32: disable stack protector for startup code (CMake)
Files where stack protector is initialized should not be compiled with
stack protector enabled. This was done for Make but missing for CMake.

Fixes https://github.com/espressif/esp-idf/issues/2990.
2019-03-05 07:11:57 +00:00
Jiang Jiang Jian
62444346c1 Merge branch 'bugfix/fix_some_wifi_bugs_0301_v3.1' into 'release/v3.1'
esp32: fix some WiFi bugs (backport v3.1)

See merge request idf/esp-idf!4401
2019-03-05 10:33:24 +08:00
Darian Leung
4c4acd8d2f freertos: Make xPortGetCoreID() volatile
When xPortGetCoreID() is called twice within a function,
it might only be called once after compilation. This
commit makes the inline assembly of the function volatile.

Closes #3093
2019-03-01 10:49:58 +00:00
Jiang Jiang Jian
7e5ac34be7 Merge branch 'bugfix/wifi_modify_wifi_kconfig_v3.1' into 'release/v3.1'
esp32: modify WiFi Kconfig in order to achieve better compatility and performance (bakcport v3.1)

See merge request idf/esp-idf!4385
2019-03-01 18:46:36 +08:00
Jiang Jiang Jian
887ff7d685 Merge branch 'bugfix/multiple_backports_v3.1' into 'release/v3.1'
multiple backports (v3.1)

See merge request idf/esp-idf!4376
2019-03-01 18:46:10 +08:00
Jiang Jiang Jian
43dc03659e Merge branch 'bugfix/ble_reconn_rescan_readv_crash_v3.1' into 'release/v3.1'
component/bt : fix bug that there's low ratio crash when BLE do re-connect/re-scan/re-adv

See merge request idf/esp-idf!4327
2019-03-01 18:05:54 +08:00
Liu Zhi Fu
863da69c5b esp32: fix some WiFi bugs
Fix following WiFi bugs:
1. Fix the bug that STA incorrectly deletes BA when receiving DelBA request
2. Add out of memory check
3. Fix the bug that STA incorrectly receives packets when scanning in connected status
2019-03-01 12:50:39 +08:00
Ivan Grokhotkov
4e55490602 nvs: add a blob fragmentation test case
Ref. TW12937
2019-02-28 21:58:03 +08:00
Ivan Grokhotkov
7ee102a9f6 nvs: do eager cleanup of HashListBlocks
Previously when HashList was removing items, HashListBlocks were
removed lazily. This resulted in empty HashListBlocks dangling around
in full pages, even when all items have been erased. These blocks
would only be deleted when NVS was re-initialized
(nvs_flash_deinit/nvs_flash_init).

This change does eager cleanup instead, based on the code from
@negativekelvin offered in
https://github.com/espressif/esp-idf/issues/1642#issuecomment-367227994.

Closes https://github.com/espressif/esp-idf/issues/1642.
2019-02-28 21:58:03 +08:00
Ivan Grokhotkov
70a9e72e06 esp_timer: fix occasional failures in "monotonic values" test
1. ref_clock used in unit tests occasionally produces time off by ~100
microseconds shortly after being started. Add a delay to let
ref_clock stabilise, until the cause is found.

2. Reduce roundoff error accumulation which would occasionally cause
the test to fail, by choosing an overflow value which can be divided
by APB frequency.

3. Move time sampling part of the test into an IRAM function to
reduce variations due to cache behavior.

4. Remove calculation of "standard deviation" in the test, as what was
calculated was not actually standard deviation, and it did not add any
useful information.
2019-02-28 21:58:03 +08:00
Ivan Grokhotkov
9cfd94a9d6 esp_timer: improve unit test robustness
1. call esp_timer_get_time and ref_clock_get in the same order on
   start and in the loop

2. disable interrupts when calculating delta between ref_clock
   and esp_timer

3. ensure both functions are in cache before calculating the delta
2019-02-28 21:58:03 +08:00
Ivan Grokhotkov
48416c38c8 soc: define named constants for DPORT_CPUPERIOD_SEL values 2019-02-28 21:58:03 +08:00
Ivan Grokhotkov
beb8347faa bootloader: check previously used clock frequency at run time
In the situation when bootloader was compiled for 240MHz, and app was
compiled for 160MHz, and the chip is a revision 0 chip, the
bootloader will assume that the application has also been running at
240MHz. This will cause the chip to lock up later. Modify this to use
a run time check of DPORT_CPUPERIOD_SEL, which indicates which of the
PLL frequencies was used.

Closes https://github.com/espressif/esp-idf/issues/2731.
2019-02-28 21:58:03 +08:00
Ivan Grokhotkov
450118fdf8 soc/rtc_clk: don’t clear DPORT_CPUPERIOD_SEL when switching to XTAL
This is not necessary since RTC_CNTL_SOC_CLK_SEL is set before this.
2019-02-28 21:58:03 +08:00
Jiang Jiang Jian
2f14aeee00 Merge branch 'bugfix/fix_scan_bugs_and_alloc_eb_fail_v3.1' into 'release/v3.1'
wifi: fix scan bugs and alloc eb fail (backport v3.1)

See merge request idf/esp-idf!4389
2019-02-28 21:31:49 +08:00
Jiang Jiang Jian
42383518b8 Merge branch 'bugfix/enlarge_ethernet_stack_size_v3.1' into 'release/v3.1'
enlarge ethernet task stack size (backport v3.1)

See merge request idf/esp-idf!4369
2019-02-28 18:23:28 +08:00
zhangyanjiao
fb15403515 wifi changes:
1. make menuconfig can set the WiFi mgmt short buffer num
2. fix several scan bugs
2019-02-28 15:40:56 +08:00
XiaXiaotian
8a20519222 esp32: modify WiFi Kconfig in order to achieve better compatility
and performance
2019-02-28 10:06:06 +08:00
Jiang Jiang Jian
98ed70cd91 Merge branch 'doc/btdm_modem_sleep_EVED_mode_for_v3.1' into 'release/v3.1'
doc/btdm_modem_sleep_EVED_mode_for_v3.1(backport v3.1)

See merge request idf/esp-idf!4361
2019-02-27 18:36:04 +08:00
morris
ed1771c7cc ethernet: enlarge ethernet task stack size
1. In original driver, the stack size for emac driver task "emacT" is only 2048 Bytes, which also can not be changed by user.
2. Each time when invoking "emac_start" function, it will reset emac registers, the driver should reconfig some important registers again.

Closes https://github.com/espressif/esp-idf/issues/3025
2019-02-27 15:21:09 +08:00
wangmengyang
1bd674dc64 component/bt: add more information and description for bluetooth modem sleep
Add remark that "EVED" mode for bluetooth modem sleep is only used for internal test
2019-02-27 10:51:15 +08:00
Paul Abbott
285a0aa13c driver(rmt): Fixed some RMT related issues for release/v3.1.
1. Add missing get function to RMT API: rmt_get_idle_level().
2. Suppress error message from rmt_wait_tx_done() if wait_time==0 (allows for polling).
3. Remove the blank lines between parameter lists.

Merges https://github.com/espressif/esp-idf/pull/2666
2019-02-26 20:35:28 +08:00
Liu Zhi Fu
a019517d07 esp32: make WiFi IRAM optimization configurable
With this feature, the WiFi IRAM optimization can be disabled/enabled via menuconfig.
2019-02-26 19:26:02 +08:00