Re: [PATCH v4 1/1] ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Feb 22, 2016 at 10:29:48PM -0600, John Dahlstrom wrote:
> On Mon, 22 Feb 2016, Darren Hart wrote:
> 
> >Unfortunately, backporting this to stable is not quite so simple.
> >
> >First, 3.16 doesn't really work as between 3.16 and 3.17 the following patch
> >landed:
> >
> >ce363c2 ideapad-laptop: Change Lenovo Yoga 2 series rfkill handling
> >
> >Which changes the name of the dmi_system_id struct from rfkill_blacklist to
> >no_hw_rfkill_list.
> >
> >Following that, there were several additions to the list which should be applied
> >before this patch to each stable kernel for which they haven't been picked up in
> >order for this one to apply cleanly. Several of those are included below:
> >
> 
> Despite the change in the no_hw_rfkill_list, GNU patch still yields the
> correct output but with fuzz. I interpret apply cleanly to mean that
> the patch must also apply with zero fuzz, such as with "patch -F 0".
> 
> In the case where the context has changed (including changes to an
> enclosing struct or function), I gather that a patch exactly modified
> for an older kernel is to be sent to stable@xxxxxxxxxxxxxxx after the
> unmodified patch is accepted upstream with a commit ID.
> 
> >$ git l v3.17.. drivers/platform/x86/ideapad-laptop.c
> [...]
> 
> >If you are going to specify a kernel version, you should also include the
> >commits above necessary to make the patch apply cleanly. That would be a long
> >list as you would need many of these for each version.
> >
> 
> Thank you for that information. One commit is sufficient to apply the patch
> to all kernel versions without fuzz:
> 
> 4fa9dab ideapad_laptop: Lenovo G50-30 fix rfkill reports wireless blocked

This does not yield correct results for me on 3.17 (or 3.17.8). Do you get
different results from the following?

dvhart@dvhart-mobl5:~/source/linux/linux-pdx86 [testing]
$ git co -b 3.17 v3.17
Checking out files: 100% (36214/36214), done.
Switched to a new branch '3.17'

dvhart@dvhart-mobl5:~/source/linux/linux-pdx86 [3.17]
$ git cp 4fa9dab
[3.17 d2cdd70] ideapad_laptop: Lenovo G50-30 fix rfkill reports wireless blocked
 Author: Dmitry Tunin <hanipouspilot@xxxxxxxxx>
 Date: Sun Jan 18 15:44:40 2015 +0300
 1 file changed, 7 insertions(+)

dvhart@dvhart-mobl5:~/source/linux/linux-pdx86 [3.17]
$ git am ~/incoming/PATCH_v5_1-1_ideapad-laptop_Add_ideapad_Y700_15_to_the_no_hw_rfkill_DMI_list.mbox
Applying: ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list
error: patch failed: drivers/platform/x86/ideapad-laptop.c:864
error: drivers/platform/x86/ideapad-laptop.c: patch does not apply
Patch failed at 0001 ideapad-laptop: Add ideapad Y700 (15) to the no_hw_rfkill DMI list
The copy of the patch that failed is found in:
   /home/dvhart/source/linux/linux-pdx86/.git/rebase-apply/patch
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

dvhart@dvhart-mobl5:~/source/linux/linux-pdx86 [3.17|AM 1/1]
$ patch -p1 < ~/incoming/PATCH_v5_1-1_ideapad-laptop_Add_ideapad_Y700_15_to_the_no_hw_rfkill_DMI_list.mbox 
patching file drivers/platform/x86/ideapad-laptop.c
Hunk #1 succeeded at 864 with fuzz 2.


$ cat drivers/platform/x86/ideapad-laptop.c | head -n 880 | tail -n 32

static int ideapad_acpi_add(struct platform_device *pdev)
{
	int ret, i;
	int cfg;
	struct ideapad_private *priv;
	struct acpi_device *adev;

	ret = acpi_bus_get_device(ACPI_HANDLE(&pdev->dev), &adev);
	if (ret)
		return -ENODEV;

	if (read_method_int(adev->handle, "_CFG", &cfg))
		return -ENODEV;

	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
	if (!priv)
	},
	{
		.ident = "Lenovo ideapad Y700-15ISK",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad Y700-15ISK"),
		},
	},
	{
		.ident = "Lenovo ideapad Y700 Touch-15ISK",
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
			DMI_MATCH(DMI_PRODUCT_VERSION, "Lenovo ideapad Y700 Touch-15ISK"),
		},
		return -ENOMEM;


Note that the DMI match blocks were stuffed in the middle of the
ideapad_acpi_add() function instead of the no_hw_rfkill.

> 
> >What I'm going to do is include a single Cc to stable line without a kernel
> >version. The maintainers will pull that back as far as they can using their own
> >judgement. If you want this to go back earlier than they do on their own, you
> >should submit it to linux-stable directly and include the Cc lines for the
> >dependencies for each kernel you care to see this backported to. See the
> >stable-kernel-rules for the specific formatting to accomplish this.
> >
> 
> I've submitted v5 of the patch with a single Cc line with the prerequisite
> kernel(s) and commit ID specified exactly.
> 
> Kind regards,
> 
> John
> 

-- 
Darren Hart
Intel Open Source Technology Center
--
To unsubscribe from this list: send the line "unsubscribe platform-driver-x86" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel Development]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux