summaryrefslogtreecommitdiff
path: root/core/fs/pxe/pxe.c
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2011-04-24 20:55:47 -0700
committerH. Peter Anvin <hpa@zytor.com>2011-04-24 21:00:19 -0700
commitf180d7c8ec74e0e15f1bcdf25c51899e2ca811c3 (patch)
tree9aefb37b132625fda83ae27099a6a8e599c115d0 /core/fs/pxe/pxe.c
parent2948efb24928c01e5935124abb26ecedb55433e8 (diff)
downloadsyslinux-f180d7c8ec74e0e15f1bcdf25c51899e2ca811c3.tar.gz
pxe: use a separate poll thread instead of using an idle thread hook
The idle thread can never sleep, so it's not really safe to do anything inside it. Instead, run a separate poll thread at low priority; we can also do that to poll the serial console if needed. Overall, the "classic" Syslinux idle handling really should go away and be replaced by the idle thread. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'core/fs/pxe/pxe.c')
-rw-r--r--core/fs/pxe/pxe.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/core/fs/pxe/pxe.c b/core/fs/pxe/pxe.c
index 2bcb27f5..858f573b 100644
--- a/core/fs/pxe/pxe.c
+++ b/core/fs/pxe/pxe.c
@@ -378,7 +378,7 @@ static void __pxe_searchdir(const char *filename, struct file *file)
struct fs_info *fs = file->fs;
struct inode *inode;
char fullpath[2*FILENAME_MAX];
-#ifdef GPXE
+#if GPXE
char urlsave[2*FILENAME_MAX];
#endif
struct url_info url;
@@ -393,13 +393,13 @@ static void __pxe_searchdir(const char *filename, struct file *file)
break;
strlcpy(fullpath, filename, sizeof fullpath);
-#ifdef GPXE
+#if GPXE
strcpy(urlsave, fullpath);
#endif
parse_url(&url, fullpath);
if (url.type == URL_SUFFIX) {
snprintf(fullpath, sizeof fullpath, "%s%s", fs->cwd_name, filename);
-#ifdef GPXE
+#if GPXE
strcpy(urlsave, fullpath);
#endif
parse_url(&url, fullpath);
@@ -424,12 +424,12 @@ static void __pxe_searchdir(const char *filename, struct file *file)
/* filename here is set on a redirect */
}
-#ifdef GPXE
if (!found_scheme) {
+#if GPXE
/* No URL scheme found, hand it to GPXE */
gpxe_open(inode, urlsave);
- }
#endif
+ }
if (inode->size)
file->inode = inode;