From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932557AbbDHRtW (ORCPT ); Wed, 8 Apr 2015 13:49:22 -0400 Received: from mail-qk0-f170.google.com ([209.85.220.170]:35550 "EHLO mail-qk0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754656AbbDHRpq (ORCPT ); Wed, 8 Apr 2015 13:45:46 -0400 From: Peter Hurley To: Greg Kroah-Hartman , Rob Herring , Grant Likely Cc: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org, Kevin Cernekee , Peter Hurley , Leif Lindholm Subject: [PATCH v3 01/13] of: earlycon: Fix 'stdout-path' with ':' path terminator Date: Wed, 8 Apr 2015 13:45:07 -0400 Message-Id: <1428515119-25248-2-git-send-email-peter@hurleysoftware.com> X-Mailer: git-send-email 2.3.5 In-Reply-To: <1428515119-25248-1-git-send-email-peter@hurleysoftware.com> References: <1428515119-25248-1-git-send-email-peter@hurleysoftware.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org stdout-path defines ':' as a path terminator and commit 75c28c09af99a ("of: add optional options parameter to of_find_node_by_path()") added the necessary support to parse paths terminated with ':'. commit 7914a7c5651a5 ("of: support passing console options with stdout-path") added options string support to the stdout-path property, which broke earlycon. Add the same support to earlycon to process 'stdout-path' properties which contain an options string. Requires: "libfdt: Add fdt_path_offset_namelen()" Cc: Leif Lindholm Signed-off-by: Peter Hurley --- drivers/of/fdt.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 3a896c9..7cef9f9 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -765,7 +765,7 @@ extern struct of_device_id __earlycon_of_table[]; static int __init early_init_dt_scan_chosen_serial(void) { int offset; - const char *p; + const char *p, *q; int l; const struct of_device_id *match = __earlycon_of_table; const void *fdt = initial_boot_params; @@ -782,8 +782,10 @@ static int __init early_init_dt_scan_chosen_serial(void) if (!p || !l) return -ENOENT; + q = strchrnul(p, ':'); + /* Get the node specified by stdout-path */ - offset = fdt_path_offset(fdt, p); + offset = fdt_path_offset_namelen(fdt, p, (int)(q - p)); if (offset < 0) return -ENODEV; -- 2.3.5