summaryrefslogtreecommitdiffstats
path: root/cpukit (follow)
Commit message (Collapse)AuthorAgeFilesLines
* score: replace current and real priority with priority nodeGedare Bloom2018-03-2325-67/+76
| | | | | | | | | Encapsulate the current_priority and real_priority fields of the thread control block with a Thread_Priority_node struct. Propagate modifications throughout the tree where the two fields are directly accessed. Updates #3359.
* dosfs: Fix msdos_format()Ralf Kirchner2018-01-111-1/+1
| | | | | | For FAT32 msdos_format() used to initialize first FAT entries to non-zero values only if a volume label was given. Absence of these entries made mounting such a FAT32 volume fail.
* libnetworking: Disconnect after mbuf shortageSebastian Huber2018-01-111-1/+4
| | | | | The missing disconnect left the socket in an unusable state. Each send request resulted in an EISCONN error.
* score: Use _Workspace_Allocate_or_fatal_error()Sebastian Huber2018-01-111-5/+8
| | | | | | Use _Workspace_Allocate_or_fatal_error() consistently in case auto extend is turned off. This helps to avoid undefined behaviour in _API_Mutex_Allocate() in case _API_Mutex_Information() fails.
* rtems: PR1844: Fix MP process packet sizeSebastian Huber2018-01-111-2/+2
|
* librpc: PR2066: Fix for short enumsSebastian Huber2018-01-117-15/+23
| | | | | | | | | | The XDR library has a problem on architectures with short enums like the default ARM EABI. Short enums means that the size of the enum type is variable and the smallest integer type to hold all enum values will be selected. For many enums this is char. The XDR library uses int32_t for enum_t. There are several evil casts from an enum type to enum_t which leads to invalid memory accesses on short enum architectures. A workaround is to add appropriate dummy enum values.
* network/bootp: PR2031: Add and use header fileSebastien Bourdeauducq2018-01-116-37/+50
|
* dosfs: Fix for no space left on device conditionSebastian Huber2018-01-111-3/+5
| | | | | | The file size was wrong in the no space left on device condition. This resulted in turn in a read of an invalid block which lead to an EIO error status.
* network/dhcp: PR1841: Fix DNS processing in DHCPSebastien Bourdeauducq2018-01-111-3/+45
|
* score/chain: Fix _Chain_Is_first and _Chain_Is_lastGedare Bloom2018-01-101-2/+2
| | | | Updates #1964.
* tftpDriver: don't free directory node's path stringMichael Davidsaver2017-01-261-1/+2
| | | | Update #2375.
* tftpDriver: backport fixesMichael Davidsaver2017-01-262-92/+84
| | | | | | ensure that node_access is comparable in unmount() Update #2375.
* tftpDriver: apply changes through masterMichael Davidsaver2017-01-261-215/+161
| | | | | | | from 4.10.2-15-g5b21eb6 to eb7753437ff858ebe34a08baef7dfdb45eb0f018 Update #2375.
* fat: Fix for invalid cluster sizesSebastian Huber2016-05-201-1/+3
| | | | | | | A cluster size > 32KiB resulted in an infinite loop in fat_init_volume_info() due to an integer overflow. Update #2717.
* posix: Fix return states of pthread_kill()Sebastian Huber2016-05-171-19/+14
| | | | | | POSIX mandates that an error code is returned and not -1 plus errno. Update #2715.
* posix: Fix return status of pthread_cancel()Sebastian Huber2016-05-171-1/+1
| | | | | | | POSIX recommends ESRCH in case no thread exists for the specified identifier. Update #2713.
* RFS: Fix resource leakSebastian Huber2015-10-211-0/+2
| | | | Update #2433.
* tftpDriver: close() false errorMichael Davidsaver2015-07-291-1/+3
| | | | closes #2376.
* rpc: misaligned pointer dereference in clnt_udp.c line 363Jeffrey Hill2015-02-231-3/+3
| | | | see #2248
* rpc: misaligned address exception in get_myaddress.cJeffrey Hill2015-02-231-15/+38
| | | | updates #2249 see #1401
* networking: alignment exception in ioctl(SIOCGIFCONF)Till Straumann2015-02-231-11/+12
| | | | | Access memory using a byte stream when copying to avoid unaligned access. update #1401
* bdbuf: Fix race condition with sync active flagSebastian Huber2014-11-281-7/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug report by Oleg Kravtsov: In rtems_bdbuf_swapout_processing() function there is the following lines: if (bdbuf_cache.sync_active && !transfered_buffers) { rtems_id sync_requester; rtems_bdbuf_lock_cache (); ... } Here access to bdbuf_cache.sync_active is not protected with anything. Imagine the following test case: 1. Task1 releases buffer(s) with bdbuf_release_modified() calls; 2. After a while swapout task starts and flushes all buffers; 3. In the end of that swapout flush we are before that part of code, and assume there is task switching (just before "if (bdbuf_cache.sync_active && !transfered_buffers)"); 4. Some other task (with higher priority) does bdbuf_release_modified and rtems_bdbuf_syncdev(). This task successfully gets both locks sync and pool (in rtems_bdbuf_syncdev() function), sets sync_active to true and starts waiting for RTEMS_BDBUF_TRANSFER_SYNC event with only sync lock got. 5. Task switching happens again and we are again before "if (bdbuf_cache.sync_active && !transfered_buffers)". As the result we check sync_active and we come inside that "if" statement. 6. The result is that we send RTEMS_BDBUF_TRANSFER_SYNC event! Though ALL modified messages of that task are not flushed yet! close #1485
* Avoid buffer overflow and misaligned memory accessSebastian Huber2014-11-241-14/+24
|
* ppp: PR1943: Avoid NULL pointer accessSebastian Huber2014-11-221-8/+2
| | | | | | | Waiting for mbufs at this level is a bad solution. It would be better to try to allocate a new mbuf chain before we hand over the current mbuf chain to the upper layer. In case the allocation fails we should drop the current packet and use its mbuf chain for a new packet.
* capture: back-port conversion from task_name to task_id (see #1361)Nickolay Semyonov2014-11-221-3/+3
|
* score: PR2179: Fix initially locked PI mutexSebastian Huber2014-08-201-4/+10
|
* ramdisk: Fix device name generationSebastian Huber2014-06-271-1/+1
|
* score: PR2179: Fix initially locked PCP mutexesSebastian Huber2014-05-231-2/+3
| | | | | Elevate the priority of the creating task to the ceiling priority in case a semaphore is created as initially locked.
* posix: fix race condition between pthread_create and capture engineTill Strauman2014-04-111-0/+5
| | | | | | | Fix PR 2068: Reproducable crashes occur when using pthreads and the capture engine at the same time. 'pthread_create()' is the culprit. It creates a SCORE thread and then calls Thread_Start( ) without disabling thread-dispatching.
* score: PR2140: Fix _Thread_queue_Process_timeout()Sebastian Huber2013-08-261-8/+37
| | | | | | The _Thread_queue_Process_timeout() operation had several race conditions in the event of nested interrupts. Protect the critical sections via disabled interrupts.
* score: PR2140: _Thread_queue_Extract()Sebastian Huber2013-08-264-11/+14
| | | | | Return if the executing context performed the extract operation since interrupts may interfere.
* libblock: PR2040: Avoid NULL pointer accessSebastian Huber2013-08-231-6/+16
| | | | | | | This partly reverts commit 08b9d534604fbf437743a9925ef28eb1b848510d. Avoid a NULL pointer access and perform the source segment erase if necessary.
* score: Fix _Objects_Shrink_information()Sebastian Huber2013-01-071-20/+16
| | | | The chain iteration was wrong. The chain tail is not an object.
* rtems: Critical fix for eventsSebastian Huber2013-01-071-7/+12
| | | | | | | Commit 4b45c1393ce4ee3e1c2762ef3145d2bd6b5b38da marked a test in _Event_Timeout() as debug only. This test is required also in non-debug configurations since otherwise state corruption can happen. A revised test sptests/spintrcritical10 checks the relevant sequences.
* score: Critical fix for timer serverSebastian Huber2012-12-061-7/+0
| | | | | | | | Under certain conditions it is possible that a call to _Watchdog_Adjust_to_chain() happens with a unit parameter value of zero (for example sptests/spintrcritical17). Remove superfluous checks that prevent an adjust to a chain of a watchdog chain which first element has a delta zero value.
* tftpfs: PR1624: Fix parsing of hostnames and pathsDylan Maxwell2012-12-061-8/+11
|
* libblock: Fix purge device tree traversalSebastian Huber2012-08-091-1/+2
|
* libblock: PR2040: Fix recycle destination updateSebastian Huber2012-04-161-8/+7
| | | | | Check the availablity of a recycle destination segment only when it is necessary to avoid missing resycle source segment erasures.
* libblock: PR2040: Add starvation thresholdSebastian Huber2012-04-161-1/+15
| | | | | | Do not use the unavailable block count as the erased blocks starvation threshold. Use instead the block count of the largest segment. This improves the starvation resolution gain of available blocks.
* PR2040: libblock: Flash disk starvations statisticSebastian Huber2012-03-141-2/+10
|
* PR2040: libblock: Flash disk documentationSebastian Huber2012-03-142-105/+127
|
* PR2040: libblock: Fix return statusSebastian Huber2012-03-141-3/+3
|
* PR2040: libblock: Avoid erased blocks starvationSebastian Huber2012-03-141-115/+185
| | | | | | | | | | | | The compaction process needs erased blocks. It is only possible to erase an entire segment. Thus in order to make a progress we always need enough erased blocks to empty a used or available segment which can be erased in turn. A (possibly the worst case) lower bound of erased blocks is the block count of the largest segment. The number of unavailable blocks specified by the configuration will be used to determine the erase blocks starvation situation. The number of unavailable blocks must be greater than or equal to the number of blocks in the largest segment.
* PR2040: libblock: Track number of erased blocksSebastian Huber2012-03-141-1/+8
|
* PR2040: libblock: Use segment control as parameterSebastian Huber2012-03-141-100/+91
|
* PR2039: Fix NULL pointer accessSebastian Huber2012-03-141-2/+2
| | | | | | | In case rtems_bdbuf_read() returns an error status, the block device buffer pointer will be set to NULL. In RFS the chain node of the block device buffer will be used for RFS purposes. We must not do this after an erroneous read.
* PR 2026/filesystem - Fix semaphore attributesSebastian Huber2012-02-231-7/+2
| | | | | Semaphores of type RTEMS_SIMPLE_BINARY_SEMAPHORE are not suitable for a mutex. Use RTEMS_BINARY_SEMAPHORE with RTEMS_INHERIT_PRIORITY instead.
* PR 2001/shell - medit command argument parsing correctionJoel Sherrill2012-02-031-1/+1
| | | | | | | | | | | "medit" overran the argument list, choking on the NULL pointer following the last argument. Note that "medit" still only does byte-sized accesses, which limits its usefulness on most systems. Author: Werner Almesberger <werner@almesberger.net> Signed-off-by: Sebastien Bourdeauducq <sebastien@milkymist.org>
* PR 2012 - mdump/wdump shell cmds handle length arg incorrectly; add ldump cmdJoel Sherrill2012-02-023-39/+168
| | | | | | | | | | | | | * libmisc/shell/main_mdump.c: Reworked to fix bugs in handling of the length argument and to provide an "ldump" command. This file now also supports the "wdump" command. In addition, an RTEMS API function called rtems_mdump() is provided to allow easy dumping from application code. * libmisc/shell/main_mwdump.c: Obsolete file. * libmisc/Makefile.am: Removed main_mwdump.c * libmisc/shell/shellconfig.h: Added "ldump" command. * shell/memory.t: Added documentation for the "ldump" command Signed-off-by: Ric Claus <claus@SLAC.Stanford.edu>
* PR 2012 - mdump/wdump shell cmds handle length arg incorrectly; add ldump cmdJoel Sherrill2012-02-021-95/+0
| | | | | | | | | | | | | * libmisc/shell/main_mdump.c: Reworked to fix bugs in handling of the length argument and to provide an "ldump" command. This file now also supports the "wdump" command. In addition, an RTEMS API function called rtems_mdump() is provided to allow easy dumping from application code. * libmisc/shell/main_mwdump.c: Obsolete file. * libmisc/Makefile.am: Removed main_mwdump.c * libmisc/shell/shellconfig.h: Added "ldump" command. * shell/memory.t: Added documentation for the "ldump" command Signed-off-by: Ric Claus <claus@SLAC.Stanford.edu>