summaryrefslogtreecommitdiffstats
path: root/import-layers/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch
diff options
context:
space:
mode:
Diffstat (limited to 'import-layers/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch')
-rw-r--r--import-layers/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch127
1 files changed, 0 insertions, 127 deletions
diff --git a/import-layers/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch b/import-layers/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch
deleted file mode 100644
index 829e7c4ca..000000000
--- a/import-layers/yocto-poky/meta/recipes-devtools/syslinux/syslinux/0005-linux-syslinux-implement-handle_adv_on_ext.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From cdb980b37f40dc2c41891434c7736e49da53756e Mon Sep 17 00:00:00 2001
-From: Robert Yang <liezhi.yang@windriver.com>
-Date: Wed, 31 Dec 2014 16:47:52 +0800
-Subject: [PATCH 5/9] linux/syslinux: implement handle_adv_on_ext()
-
-It reads adv if found on the device, or resets syslinux_adv, or update
-the adv if update adv only.
-
-Upstream-Status: Submitted
-
-Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
-Tested-by: Du Dolpher <dolpher.du@intel.com>
----
- linux/syslinux.c | 97 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 97 insertions(+)
-
-diff --git a/linux/syslinux.c b/linux/syslinux.c
-index 247c86a..de5d272 100755
---- a/linux/syslinux.c
-+++ b/linux/syslinux.c
-@@ -421,6 +421,103 @@ int install_bootblock(int fd, const char *device)
-
- static int handle_adv_on_ext(void)
- {
-+ int i, retval, found_file;
-+ int need_close = 2; /* 2 means no need extra close */
-+ char *filenames[2] = {"ldlinux.sys", "extlinux.sys"};
-+ char *filename;
-+ ext2_ino_t newino;
-+ ext2_file_t e2_file;
-+ struct ext2_inode inode;
-+
-+ for (i = 0; i < 2; i++) {
-+ filename = filenames[i];
-+ found_file = 0;
-+ retval = ext2fs_namei(e2fs, root, cwd, filename, &newino);
-+ if (retval == 0) {
-+ found_file = 1;
-+ } else
-+ continue;
-+
-+ need_close = i;
-+
-+ retval = ext2fs_file_open(e2fs, newino, EXT2_FLAG_RW, &e2_file);
-+ if (retval) {
-+ fprintf(stderr, "%s: failed to open %s\n",
-+ program, filename);
-+ goto fail;
-+ }
-+
-+ retval = ext2fs_read_inode(e2fs, newino, &inode);
-+ if (retval) {
-+ fprintf(stderr, "%s: error while reading inode: %u, file: %s\n",
-+ program, newino, filename);
-+ goto fail;
-+ }
-+
-+ /* Check the size to see if too small to read */
-+ if (inode.i_size < 2 * ADV_SIZE) {
-+ if (opt.update_only == -1) {
-+ fprintf(stderr, "%s: failed to write auxilliary data\n\
-+ the size of %s is too small (need --update)?\n",
-+ program, filename);
-+ retval = -1;
-+ goto fail;
-+ }
-+ syslinux_reset_adv(syslinux_adv);
-+ found_file = 0;
-+ break;
-+ }
-+
-+ /* Read the adv */
-+ retval = ext_file_read(e2_file, syslinux_adv, 2 * ADV_SIZE,
-+ inode.i_size - 2 * ADV_SIZE, "ADV");
-+ if (retval == -1)
-+ goto fail;
-+ if (retval == 2 * ADV_SIZE) {
-+ retval = syslinux_validate_adv(syslinux_adv);
-+ /* Read the adv successfully */
-+ if (retval == 0)
-+ break;
-+ }
-+
-+ /* Close the file if reaches here, otherwise we leave the file
-+ * open in case we need write it */
-+ need_close = 2;
-+ retval = ext2fs_file_close(e2_file);
-+ if (retval) {
-+ fprintf(stderr, "%s: error while closing %s\n",
-+ program, filename);
-+ return retval;
-+ }
-+ }
-+
-+ if (!found_file) {
-+ if (opt.update_only == -1) {
-+ fprintf(stderr, "%s: no ldlinux.sys or extlinux.sys found on the device\n",
-+ program);
-+ return -1;
-+ }
-+ syslinux_reset_adv(syslinux_adv);
-+ }
-+
-+ /* The modify_adv will reset the adv if opt.reset_adv */
-+ if (modify_adv() < 0) {
-+ fprintf(stderr, "%s: error while modifying adv\n", program);
-+ retval = -1;
-+ goto fail;
-+ }
-+
-+ /* Write adv if update_only == -1 and found file */
-+ if (opt.update_only == -1 && found_file) {
-+ if (ext_file_write(e2_file, syslinux_adv, 2 * ADV_SIZE ,
-+ inode.i_size - 2 * ADV_SIZE) == -1)
-+ goto fail;
-+ }
-+
-+fail:
-+ if (need_close != 2)
-+ (void) ext2fs_file_close(e2_file);
-+ return retval;
- }
-
- /* Write files, adv, boot sector */
---
-1.9.1
-
OpenPOWER on IntegriCloud