|
From: | Barry Davis |
Subject: | Re: [bug-patch] Patch abort while patching the linux kernel |
Date: | Fri, 5 May 2017 10:29:33 +0100 |
--- a/drivers/gpu/drm/drm_modes.c+++ b/drivers/gpu/drm/drm_modes.c@@ -1487,6 +1494,8 @@ int drm_mode_convert_umode(struct drm_display_mode *out,if (out->status != MODE_OK)goto out;+ drm_mode_set_crtcinfo(out, CRTC_INTERLACE_HALVE_V);+ret = 0;out:--- a/drivers/gpu/drm/drm_prime.c+++ b/drivers/gpu/drm/drm_prime.c@@ -339,14 +339,17 @@ static const struct dma_buf_ops drm_gem_prime_dmabuf_ops = {* using the PRIME helpers.*/struct dma_buf *drm_gem_prime_export(struct drm_device *dev,- struct drm_gem_object *obj, int flags)+ struct drm_gem_object *obj,+ int flags){- DEFINE_DMA_BUF_EXPORT_INFO(exp_info);-- exp_info.ops = &drm_gem_prime_dmabuf_ops;- exp_info.size = obj->size;- exp_info.flags = flags;- exp_info.priv = obj;+ struct dma_buf_export_info exp_info = {+ .exp_name = KBUILD_MODNAME, /* white lie for debug */+ .owner = dev->driver->fops->owner,+ .ops = &drm_gem_prime_dmabuf_ops,+ .size = obj->size,+ .flags = flags,+ .priv = obj,+ };if (dev->driver->gem_prime_res_obj)exp_info.resv = dev->driver->gem_prime_res_obj(obj);
--- patch-2.7.5/src/patch.c 2015-03-07 00:34:20.000000000 +0000+++ patch-2.7.5/src/patch.c 2017-05-04 16:50:29.356159495 +0100@@ -50,7 +50,7 @@static void init_output (struct outstate *);static FILE *open_outfile (char const *);static void init_reject (char const *);-static void reinitialize_almost_everything (void);+static void reinitialize_almost_everything (struct outstate *);static void remove_if_needed (char const *, bool *);static void usage (FILE *, int) __attribute__((noreturn));@@ -190,7 +190,7 @@open_patch_file (patchname);there_is_another_patch (! (inname || posixly_correct), &file_type)|| apply_empty_patch;- reinitialize_almost_everything(),+ reinitialize_almost_everything(&outstate),skip_reject_file = false,apply_empty_patch = false) { /* for each patch in patch file */@@ -682,7 +682,7 @@/* Prepare to find the next patch to do in the patch file. */static void-reinitialize_almost_everything (void)+reinitialize_almost_everything (struct outstate *outstate){re_patch();re_input();@@ -707,6 +707,9 @@reverse = reverse_flag_specified;skip_rest_of_patch = false;++ outstate->after_newline = true;+ outstate->zero_output = true;}static char const shortopts[] = "bB:cd:D:eEfF:g:i:l"
I'm applying hundreds of patches in a batch, so am using unusual arguments as I want to be able to generate a reject file whilst dry run patching, and have all the rejects from one patch to go to the same file. This has worked fine for ages until I hit this issue with a specific patch file.The issue occurs when applying the linux-4.4.66 patch to linux-4.4.I get the same issue using all versions of patch I've tried including v2.5.4 and the latest v2.7.5.To help you reproduce:tar xvf opensource/packages/linux-4.4.tar.xz xzcat patch-4.4.66.xz > patch-4.4.66address@hidden:~$ cat /etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=16.04DISTRIB_CODENAME=xenialDISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"address@hidden:~$ patch --versionGNU patch 2.7.5address@hidden:~$ patch -d linux-4.4 -Np1 -i ../patch-4.4.66 -o tmp --reject-file=patch-4.4.66.rejpatching file tmp (read from Documentation/ABI/testing/sysfs-bus-iio-proximity- as3935) patching file tmp (read from Documentation/ABI/testing/sysfs-bus-usb) patching file tmp (read from Documentation/Makefile)<snip>patching file tmp (read from drivers/gpu/drm/drm_irq.c)patching file tmp (read from drivers/gpu/drm/drm_modes.c)patching file tmp (read from drivers/gpu/drm/drm_prime.c)patch: patch.c:1419: apply_hunk: Assertion `outstate->after_newline' failed.Aborted (core dumped)address@hidden:~$
[Prev in Thread] | Current Thread | [Next in Thread] |