Skip to content

Commit

Permalink
linux-user: Move target_to_host_errno_table[] setup out of ioctl loop
Browse files Browse the repository at this point in the history
The code to initialise the target_to_host_errno_table[] array was
accidentally inside the loop through checking and initialising all
the supported ioctls. This was harmless but meant that we reinitialised the
array several hundred times on startup.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
  • Loading branch information
pm215 committed Aug 13, 2012
1 parent 5f72307 commit dd6e957
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions linux-user/syscall.c
Expand Up @@ -4606,6 +4606,12 @@ void syscall_init(void)
#undef STRUCT
#undef STRUCT_SPECIAL

/* Build target_to_host_errno_table[] table from
* host_to_target_errno_table[]. */
for (i = 0; i < ERRNO_TABLE_SIZE; i++) {
target_to_host_errno_table[host_to_target_errno_table[i]] = i;
}

/* we patch the ioctl size if necessary. We rely on the fact that
no ioctl has all the bits at '1' in the size field */
ie = ioctl_entries;
Expand All @@ -4625,11 +4631,6 @@ void syscall_init(void)
(size << TARGET_IOC_SIZESHIFT);
}

/* Build target_to_host_errno_table[] table from
* host_to_target_errno_table[]. */
for (i=0; i < ERRNO_TABLE_SIZE; i++)
target_to_host_errno_table[host_to_target_errno_table[i]] = i;

/* automatic consistency check if same arch */
#if (defined(__i386__) && defined(TARGET_I386) && defined(TARGET_ABI32)) || \
(defined(__x86_64__) && defined(TARGET_X86_64))
Expand Down

0 comments on commit dd6e957

Please sign in to comment.