2017-12-27 15:23:12

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 00/12] drop unneeded newline

Drop newline at the end of a message string when the printing function adds
a newline.

The complete semantic patch that detects this issue is as shown below
(http://coccinelle.lip6.fr/). It works in two phases - the first phase
counts how many uses of a function involve a newline and how many don't,
and then the second phase removes newlines in the case of calls where a
newline is used one fourth of the times or less.

This approach is only moderately reliable, and all patches have been
checked to ensure that the newline is not needed.

This also converts some cases of string concatenation to single strings in
modified code, as this improves greppability.

// <smpl>
virtual after_start

@initialize:ocaml@
@@

let withnl = Hashtbl.create 101
let withoutnl = Hashtbl.create 101

let ignore =
["strcpy";"strlcpy";"strcat";"strlcat";"strcmp";"strncmp";"strcspn";
"strsep";"sprintf";"printf";"strncasecmp";"seq_printf";"strstr";"strspn";
"strlen";"strpbrk";"strtok_r";"memcmp";"memcpy"]

let dignore = ["tools";"samples"]

let inc tbl k =
let cell =
try Hashtbl.find tbl k
with Not_found ->
let cell = ref 0 in
Hashtbl.add tbl k cell;
cell in
cell := 1 + !cell

let endnl c =
let len = String.length c in
try
String.get c (len-3) = '\\' && String.get c (len-2) = 'n' &&
String.get c (len-1) = '"'
with _ -> false

let clean_string s extra =
let pieces = Str.split (Str.regexp "\" \"") s in
let nonempty s =
not (s = "") && String.get s 0 = '"' && not (String.get s 1 = '"') in
let rec loop = function
[] -> []
| [x] -> [x]
| x::y::rest ->
if nonempty x && nonempty y
then
let xend = String.get x (String.length x - 2) = ' ' in
let yend = String.get y 1 = ' ' in
match (xend,yend) with
(true,false) | (false,true) -> x :: (loop (y::rest))
| (true,true) ->
x :: (loop (((String.sub y 0 (String.length y - 2))^"\"")::rest))
| (false,false) ->
((String.sub x 0 (String.length x - 1)) ^ " \"") ::
(loop (y::rest))
else x :: (loop (y::rest)) in
(String.concat "" (loop pieces))^extra

@r depends on !after_start@
constant char[] c;
expression list[n] es;
identifier f;
position p;
@@

f@p(es,c,...)

@script:ocaml@
f << r.f;
n << r.n;
p << r.p;
c << r.c;
@@

let pieces = Str.split (Str.regexp "/") (List.hd p).file in
if not (List.mem f ignore) &&
List.for_all (fun x -> not (List.mem x pieces)) dignore
then
(if endnl c
then inc withnl (f,n)
else inc withoutnl (f,n))

@finalize:ocaml depends on !after_start@
w1 << merge.withnl;
w2 << merge.withoutnl;
@@

let names = ref [] in
let incn tbl k v =
let cell =
try Hashtbl.find tbl k
with Not_found ->
begin
let cell = ref 0 in
Hashtbl.add tbl k cell;
cell
end in
(if not (List.mem k !names) then names := k :: !names);
cell := !v + !cell in
List.iter (function w -> Hashtbl.iter (incn withnl) w) w1;
List.iter (function w -> Hashtbl.iter (incn withoutnl) w) w2;

List.iter
(function name ->
let wth = try !(Hashtbl.find withnl name) with _ -> 0 in
let wo = try !(Hashtbl.find withoutnl name) with _ -> 0 in
if wth > 0 && wth <= wo / 3 then Hashtbl.remove withnl name
else (Printf.eprintf "dropping %s %d %d\n" (fst name) wth wo; Hashtbl.remove withoutnl name; Hashtbl.remove withnl name))
!names;

let it = new iteration() in
it#add_virtual_rule After_start;
it#register()

@s1 depends on after_start@
constant char[] c;
expression list[n] es;
identifier f;
position p;
@@

f(es,c@p,...)

@script:ocaml s2@
f << s1.f;
n << s1.n;
c << s1.c;
newc;
@@

try
let _ = Hashtbl.find withnl (f,n) in
if endnl c
then Coccilib.include_match false
else newc :=
make_expr(clean_string (String.sub c 0 (String.length c - 1)) "\\n\"")
with Not_found ->
try
let _ = Hashtbl.find withoutnl (f,n) in
if endnl c
then newc :=
make_expr(clean_string (String.sub c 0 (String.length c - 3)) "\"")
else Coccilib.include_match false
with Not_found -> Coccilib.include_match false

@@
constant char[] s1.c;
position s1.p;
expression s2.newc;
@@

- c@p
+ newc
// </smpl>

---

arch/arm/mach-davinci/board-da850-evm.c | 4 ++--
drivers/block/DAC960.c | 4 ++--
drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 12 ++++++++----
drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 2 +-
drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c | 2 +-
drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c | 2 +-
drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 2 +-
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 3 ++-
drivers/s390/block/dasd_diag.c | 3 +--
drivers/scsi/hpsa.c | 2 +-
fs/dlm/plock.c | 3 +--
fs/ext2/super.c | 2 +-
fs/hpfs/dnode.c | 3 ++-
net/dccp/ackvec.c | 2 +-
net/openvswitch/conntrack.c | 4 ++--
tools/perf/tests/dso-data.c | 9 +++++----
16 files changed, 32 insertions(+), 27 deletions(-)


2017-12-27 15:20:19

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 02/12] dlm: drop unneeded newline

log_print prints a newline at the end of the message string, so
the message string does not need to include a newline explicitly.
Done using Coccinelle.

The two strings were additionally merged into one, for easier
grepping.

Signed-off-by: Julia Lawall <[email protected]>

---
fs/dlm/plock.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/fs/dlm/plock.c b/fs/dlm/plock.c
index a4c63e9..ee84584 100644
--- a/fs/dlm/plock.c
+++ b/fs/dlm/plock.c
@@ -231,8 +231,7 @@ static int dlm_plock_callback(struct plock_op *op)
rv = notify(fl, 0);
if (rv) {
/* XXX: We need to cancel the fs lock here: */
- log_print("dlm_plock_callback: lock granted after lock request "
- "failed; dangling lock!\n");
+ log_print("dlm_plock_callback: lock granted after lock request failed; dangling lock!");
goto out;
}


2017-12-27 15:20:27

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 10/12] hpsa: drop unneeded newline

hpsa_show_dev_msg prints other information and a newline after the
message string, so the message string does not need to include a
newline explicitly. Done using Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/scsi/hpsa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index b0aa5dc..3bb8191 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -3518,7 +3518,7 @@ static void hpsa_get_enclosure_info(struct ctlr_info *h,

if (rc != IO_OK)
hpsa_show_dev_msg(KERN_INFO, h, encl_dev,
- "Error, could not get enclosure information\n");
+ "Error, could not get enclosure information");
}

static u64 hpsa_get_sas_address_from_report_physical(struct ctlr_info *h,

2017-12-27 15:20:26

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 09/12] [media] pvrusb2: drop unneeded newline

pvr2_trace prints a newline at the end of the message string, so the
message string does not need to include a newline explicitly. Done
using Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/media/usb/pvrusb2/pvrusb2-hdw.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
index 09bd6c6..e035316 100644
--- a/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
+++ b/drivers/media/usb/pvrusb2/pvrusb2-hdw.c
@@ -2351,7 +2351,8 @@ struct pvr2_hdw *pvr2_hdw_create(struct usb_interface *intf,

if (hdw_desc == NULL) {
pvr2_trace(PVR2_TRACE_INIT, "pvr2_hdw_create: No device description pointer, unable to continue.");
- pvr2_trace(PVR2_TRACE_INIT, "If you have a new device type, please contact Mike Isely <[email protected]> to get it included in the driver\n");
+ pvr2_trace(PVR2_TRACE_INIT,
+ "If you have a new device type, please contact Mike Isely <[email protected]> to get it included in the driver");
goto fail;
}


2017-12-27 15:20:25

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 07/12] ARM: davinci: drop unneeded newline

gpio_request uses its second argument as a label, so it doesn't seem
appropriate for it to have a newline. Done using Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---
arch/arm/mach-davinci/board-da850-evm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index cbde003..d898a94 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -798,11 +798,11 @@ static int da850_lcd_hw_init(void)
{
int status;

- status = gpio_request(DA850_LCD_BL_PIN, "lcd bl\n");
+ status = gpio_request(DA850_LCD_BL_PIN, "lcd bl");
if (status < 0)
return status;

- status = gpio_request(DA850_LCD_PWR_PIN, "lcd pwr\n");
+ status = gpio_request(DA850_LCD_PWR_PIN, "lcd pwr");
if (status < 0) {
gpio_free(DA850_LCD_BL_PIN);
return status;

2017-12-27 15:20:23

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 06/12] [S390] dasd: drop unneeded newline

DBF_DEV_EVENT prints a newline at the end of the message string,
so the message string does not need to include a newline explicitly.
Done using Coccinelle.

The two strings are also concatenated into one for easier grepping.

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/s390/block/dasd_diag.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/s390/block/dasd_diag.c b/drivers/s390/block/dasd_diag.c
index f035c2f..96c507a 100644
--- a/drivers/s390/block/dasd_diag.c
+++ b/drivers/s390/block/dasd_diag.c
@@ -329,8 +329,7 @@ static void dasd_ext_handler(struct ext_code ext_code,
private = kzalloc(sizeof(*private), GFP_KERNEL);
if (private == NULL) {
DBF_DEV_EVENT(DBF_WARNING, device, "%s",
- "Allocating memory for private DASD data "
- "failed\n");
+ "Allocating memory for private DASD data failed");
return -ENOMEM;
}
ccw_device_get_id(device->cdev, &private->dev_id);

2017-12-27 15:20:22

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 08/12] perf test: drop unneeded newline

TEST_ASSERT_VAL prints a newline at the end of the message string,
so the message string does not need to include a newline explicitly.
Done using Coccinelle.

There are some white-space adjustments in the calls to avoid exceeding 80
characters and to put continuation line arguments to the right of the (.

Signed-off-by: Julia Lawall <[email protected]>

---
tools/perf/tests/dso-data.c | 9 +++++----
1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/tools/perf/tests/dso-data.c b/tools/perf/tests/dso-data.c
index 7f6c520..f514515 100644
--- a/tools/perf/tests/dso-data.c
+++ b/tools/perf/tests/dso-data.c
@@ -150,7 +150,7 @@ int test__dso_data(struct test *test __maybe_unused, int subtest __maybe_unused)
u8 *buf;

buf = malloc(TEST_FILE_SIZE);
- TEST_ASSERT_VAL("ENOMEM\n", buf);
+ TEST_ASSERT_VAL("ENOMEM", buf);

/* First iteration to fill caches, second one to read them. */
for (c = 0; c < 2; c++) {
@@ -265,8 +265,8 @@ int test__dso_data_cache(struct test *test __maybe_unused, int subtest __maybe_u

/* and this is now our dso open FDs limit */
dso_cnt = limit / 2;
- TEST_ASSERT_VAL("failed to create dsos\n",
- !dsos__create(dso_cnt, TEST_FILE_SIZE));
+ TEST_ASSERT_VAL("failed to create dsos",
+ !dsos__create(dso_cnt, TEST_FILE_SIZE));

for (i = 0; i < (dso_cnt - 1); i++) {
struct dso *dso = dsos[i];
@@ -336,7 +336,8 @@ int test__dso_data_reopen(struct test *test __maybe_unused, int subtest __maybe_
TEST_ASSERT_VAL("failed to set file limit",
!set_fd_limit((nr + 3)));

- TEST_ASSERT_VAL("failed to create dsos\n", !dsos__create(3, TEST_FILE_SIZE));
+ TEST_ASSERT_VAL("failed to create dsos",
+ !dsos__create(3, TEST_FILE_SIZE));

/* open dso_0 */
fd = dso__data_fd(dso_0, &machine);

2017-12-27 15:22:28

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 12/12] hpfs: drop unneeded newline

hpfs_error prints a newline at the end of the message string, so the
message string does not need to include a newline explicitly. Done
using Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---
fs/hpfs/dnode.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/hpfs/dnode.c b/fs/hpfs/dnode.c
index a4ad18a..fc1809b 100644
--- a/fs/hpfs/dnode.c
+++ b/fs/hpfs/dnode.c
@@ -914,7 +914,8 @@ struct hpfs_dirent *map_dirent(struct inode *inode, dnode_secno dno,
struct hpfs_dirent *de_end;
int c1, c2 = 0;

- if (!S_ISDIR(inode->i_mode)) hpfs_error(inode->i_sb, "map_dirent: not a directory\n");
+ if (!S_ISDIR(inode->i_mode))
+ hpfs_error(inode->i_sb, "map_dirent: not a directory");
again:
if (hpfs_sb(inode->i_sb)->sb_chk)
if (hpfs_stop_cycles(inode->i_sb, dno, &c1, &c2, "map_dirent")) return NULL;

2017-12-27 15:22:54

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 11/12] drm/amd/powerplay: drop unneeded newline

PP_ASSERT_WITH_CODE prints a newline at the end of the message string,
so the message string does not need to include a newline explicitly.
Done using Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---

I couldn't figure out how to configure the kernel to get any of this code
to compile.

drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 12 ++++++++----
drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 2 +-
drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c | 2 +-
drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c | 2 +-
drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 2 +-
5 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
index 40adc85..8d7fd06 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
@@ -2266,14 +2266,18 @@ static int smu7_set_private_data_based_on_pptable_v0(struct pp_hwmgr *hwmgr)
struct phm_clock_voltage_dependency_table *allowed_mclk_vddci_table = hwmgr->dyn_state.vddci_dependency_on_mclk;

PP_ASSERT_WITH_CODE(allowed_sclk_vddc_table != NULL,
- "VDDC dependency on SCLK table is missing. This table is mandatory\n", return -EINVAL);
+ "VDDC dependency on SCLK table is missing. This table is mandatory",
+ return -EINVAL);
PP_ASSERT_WITH_CODE(allowed_sclk_vddc_table->count >= 1,
- "VDDC dependency on SCLK table has to have is missing. This table is mandatory\n", return -EINVAL);
+ "VDDC dependency on SCLK table has to have is missing. This table is mandatory",
+ return -EINVAL);

PP_ASSERT_WITH_CODE(allowed_mclk_vddc_table != NULL,
- "VDDC dependency on MCLK table is missing. This table is mandatory\n", return -EINVAL);
+ "VDDC dependency on MCLK table is missing. This table is mandatory",
+ return -EINVAL);
PP_ASSERT_WITH_CODE(allowed_mclk_vddc_table->count >= 1,
- "VDD dependency on MCLK table has to have is missing. This table is mandatory\n", return -EINVAL);
+ "VDD dependency on MCLK table has to have is missing. This table is mandatory",
+ return -EINVAL);

data->min_vddc_in_pptable = (uint16_t)allowed_sclk_vddc_table->entries[0].v;
data->max_vddc_in_pptable = (uint16_t)allowed_sclk_vddc_table->entries[allowed_sclk_vddc_table->count - 1].v;
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
index 085d81c..427daa6 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
@@ -1799,7 +1799,7 @@ static int fiji_populate_clock_stretcher_data_table(struct pp_hwmgr *hwmgr)
phm_cap_unset(hwmgr->platform_descriptor.platformCaps,
PHM_PlatformCaps_ClockStretcher);
PP_ASSERT_WITH_CODE(false,
- "Stretch Amount in PPTable not supported\n",
+ "Stretch Amount in PPTable not supported",
return -EINVAL);
}

diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
index 1253126..6400065 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
@@ -546,7 +546,7 @@ static int iceland_get_std_voltage_value_sidd(struct pp_hwmgr *hwmgr,

/* SCLK/VDDC Dependency Table has to exist. */
PP_ASSERT_WITH_CODE(NULL != hwmgr->dyn_state.vddc_dependency_on_sclk,
- "The SCLK/VDDC Dependency Table does not exist.\n",
+ "The SCLK/VDDC Dependency Table does not exist.",
return -EINVAL);

if (NULL == hwmgr->dyn_state.cac_leakage_table) {
diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
index cdb4765..fd874f7 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
@@ -1652,7 +1652,7 @@ static int polaris10_populate_clock_stretcher_data_table(struct pp_hwmgr *hwmgr)
phm_cap_unset(hwmgr->platform_descriptor.platformCaps,
PHM_PlatformCaps_ClockStretcher);
PP_ASSERT_WITH_CODE(false,
- "Stretch Amount in PPTable not supported\n",
+ "Stretch Amount in PPTable not supported",
return -EINVAL);
}

diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
index 79e5c05..5eb719e 100644
--- a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
+++ b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
@@ -1699,7 +1699,7 @@ static int tonga_populate_clock_stretcher_data_table(struct pp_hwmgr *hwmgr)
phm_cap_unset(hwmgr->platform_descriptor.platformCaps,
PHM_PlatformCaps_ClockStretcher);
PP_ASSERT_WITH_CODE(false,
- "Stretch Amount in PPTable not supported\n",
+ "Stretch Amount in PPTable not supported",
return -EINVAL);
}


2017-12-27 15:23:49

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 05/12] openvswitch: drop unneeded newline

OVS_NLERR prints a newline at the end of the message string, so the
message string does not need to include a newline explicitly. Done
using Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---
net/openvswitch/conntrack.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
index b27c5c6..62f36cc9 100644
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -1266,14 +1266,14 @@ static int parse_nat(const struct nlattr *attr,
/* Do not allow flags if no type is given. */
if (info->range.flags) {
OVS_NLERR(log,
- "NAT flags may be given only when NAT range (SRC or DST) is also specified.\n"
+ "NAT flags may be given only when NAT range (SRC or DST) is also specified."
);
return -EINVAL;
}
info->nat = OVS_CT_NAT; /* NAT existing connections. */
} else if (!info->commit) {
OVS_NLERR(log,
- "NAT attributes may be specified only when CT COMMIT flag is also specified.\n"
+ "NAT attributes may be specified only when CT COMMIT flag is also specified."
);
return -EINVAL;
}

2017-12-27 15:20:17

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 01/12] dac960: drop unneeded newline

DAC960_Failure prints a newline at the end of the message string, so
the message string does not need to include a newline explicitly.
Done using Coccinelle.

In the first case, the preceding spaces were also converted to a tab.
In the second case, doing so would upset the indentation, so it was
left as is.

Signed-off-by: Julia Lawall <[email protected]>

---
drivers/block/DAC960.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/block/DAC960.c b/drivers/block/DAC960.c
index 442e777..89cd83a 100644
--- a/drivers/block/DAC960.c
+++ b/drivers/block/DAC960.c
@@ -1344,7 +1344,7 @@ static bool DAC960_V1_EnableMemoryMailboxInterface(DAC960_Controller_T
CommandMailbox.TypeX.CommandOpcode2 = 0x10;
break;
default:
- DAC960_Failure(Controller, "Unknown Controller Type\n");
+ DAC960_Failure(Controller, "Unknown Controller Type");
break;
}
return false;
@@ -1527,7 +1527,7 @@ static bool DAC960_V2_EnableMemoryMailboxInterface(DAC960_Controller_T
DAC960_LP_AcknowledgeHardwareMailboxStatus(ControllerBaseAddress);
break;
default:
- DAC960_Failure(Controller, "Unknown Controller Type\n");
+ DAC960_Failure(Controller, "Unknown Controller Type");
CommandStatus = DAC960_V2_AbormalCompletion;
break;
}

2017-12-27 15:24:11

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 04/12] ext2: drop unneeded newline

ext2_msg prints a newline at the end of the message string, so the message
string does not need to include a newline explicitly. Done using
Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---
fs/ext2/super.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 0083ea5..3220035 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1226,7 +1226,7 @@ static void ext2_clear_super_error(struct super_block *sb)
* write and hope for the best.
*/
ext2_msg(sb, KERN_ERR,
- "previous I/O error to superblock detected\n");
+ "previous I/O error to superblock detected");
clear_buffer_write_io_error(sbh);
set_buffer_uptodate(sbh);
}

2017-12-27 15:24:40

by Julia Lawall

[permalink] [raw]
Subject: [PATCH 03/12] net: dccp: drop unneeded newline

DCCP_CRIT prints some other text and then a newline after the message
string, so the message string does not need to include a newline
explicitly. Done using Coccinelle.

Signed-off-by: Julia Lawall <[email protected]>

---
net/dccp/ackvec.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/dccp/ackvec.c b/net/dccp/ackvec.c
index 3de0d03..2a24f7d 100644
--- a/net/dccp/ackvec.c
+++ b/net/dccp/ackvec.c
@@ -228,7 +228,7 @@ static void dccp_ackvec_add_new(struct dccp_ackvec *av, u32 num_packets,
}

if (num_cells + dccp_ackvec_buflen(av) >= DCCPAV_MAX_ACKVEC_LEN) {
- DCCP_CRIT("Ack Vector buffer overflow: dropping old entries\n");
+ DCCP_CRIT("Ack Vector buffer overflow: dropping old entries");
av->av_overflow = true;
}


2017-12-27 15:40:19

by Michel Dänzer

[permalink] [raw]
Subject: Re: [PATCH 11/12] drm/amd/powerplay: drop unneeded newline

On 2017-12-27 03:51 PM, Julia Lawall wrote:
> PP_ASSERT_WITH_CODE prints a newline at the end of the message string,
> so the message string does not need to include a newline explicitly.
> Done using Coccinelle.
>
> Signed-off-by: Julia Lawall <[email protected]>
>
> ---
>
> I couldn't figure out how to configure the kernel to get any of this code
> to compile.

Just enabling CONFIG_DRM_AMDGPU should be enough AFAICT.


--
Earthling Michel Dänzer | http://www.amd.com
Libre software enthusiast | Mesa and X developer

2017-12-27 20:11:59

by Julia Lawall

[permalink] [raw]
Subject: Re: [PATCH 11/12] drm/amd/powerplay: drop unneeded newline



On Wed, 27 Dec 2017, Michel Dänzer wrote:

> On 2017-12-27 03:51 PM, Julia Lawall wrote:
> > PP_ASSERT_WITH_CODE prints a newline at the end of the message string,
> > so the message string does not need to include a newline explicitly.
> > Done using Coccinelle.
> >
> > Signed-off-by: Julia Lawall <[email protected]>
> >
> > ---
> >
> > I couldn't figure out how to configure the kernel to get any of this code
> > to compile.
>
> Just enabling CONFIG_DRM_AMDGPU should be enough AFAICT.

That seems to work. Thanks.

julia

2017-12-28 04:30:51

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH 04/12] ext2: drop unneeded newline

On Wed, Dec 27, 2017 at 03:51:37PM +0100, Julia Lawall wrote:
> ext2_msg prints a newline at the end of the message string, so the message
> string does not need to include a newline explicitly. Done using
> Coccinelle.
>
> Signed-off-by: Julia Lawall <[email protected]>

Reviewed-by: Theodore Ts'o <[email protected]>

- Ted

2018-01-01 20:55:37

by Mikulas Patocka

[permalink] [raw]
Subject: Re: [PATCH 12/12] hpfs: drop unneeded newline



On Wed, 27 Dec 2017, Julia Lawall wrote:

> hpfs_error prints a newline at the end of the message string, so the
> message string does not need to include a newline explicitly. Done
> using Coccinelle.
>
> Signed-off-by: Julia Lawall <[email protected]>

Reviewed-by: Mikulas Patocka <[email protected]>

> ---
> fs/hpfs/dnode.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/fs/hpfs/dnode.c b/fs/hpfs/dnode.c
> index a4ad18a..fc1809b 100644
> --- a/fs/hpfs/dnode.c
> +++ b/fs/hpfs/dnode.c
> @@ -914,7 +914,8 @@ struct hpfs_dirent *map_dirent(struct inode *inode, dnode_secno dno,
> struct hpfs_dirent *de_end;
> int c1, c2 = 0;
>
> - if (!S_ISDIR(inode->i_mode)) hpfs_error(inode->i_sb, "map_dirent: not a directory\n");
> + if (!S_ISDIR(inode->i_mode))
> + hpfs_error(inode->i_sb, "map_dirent: not a directory");
> again:
> if (hpfs_sb(inode->i_sb)->sb_chk)
> if (hpfs_stop_cycles(inode->i_sb, dno, &c1, &c2, "map_dirent")) return NULL;
>
>

2018-01-01 21:07:48

by Alex Deucher

[permalink] [raw]
Subject: Re: [PATCH 11/12] drm/amd/powerplay: drop unneeded newline

On Wed, Dec 27, 2017 at 9:51 AM, Julia Lawall <[email protected]> wrote:
> PP_ASSERT_WITH_CODE prints a newline at the end of the message string,
> so the message string does not need to include a newline explicitly.
> Done using Coccinelle.
>
> Signed-off-by: Julia Lawall <[email protected]>

Applied. thanks!

Alex

>
> ---
>
> I couldn't figure out how to configure the kernel to get any of this code
> to compile.
>
> drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c | 12 ++++++++----
> drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c | 2 +-
> drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c | 2 +-
> drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c | 2 +-
> drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c | 2 +-
> 5 files changed, 12 insertions(+), 8 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> index 40adc85..8d7fd06 100644
> --- a/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/hwmgr/smu7_hwmgr.c
> @@ -2266,14 +2266,18 @@ static int smu7_set_private_data_based_on_pptable_v0(struct pp_hwmgr *hwmgr)
> struct phm_clock_voltage_dependency_table *allowed_mclk_vddci_table = hwmgr->dyn_state.vddci_dependency_on_mclk;
>
> PP_ASSERT_WITH_CODE(allowed_sclk_vddc_table != NULL,
> - "VDDC dependency on SCLK table is missing. This table is mandatory\n", return -EINVAL);
> + "VDDC dependency on SCLK table is missing. This table is mandatory",
> + return -EINVAL);
> PP_ASSERT_WITH_CODE(allowed_sclk_vddc_table->count >= 1,
> - "VDDC dependency on SCLK table has to have is missing. This table is mandatory\n", return -EINVAL);
> + "VDDC dependency on SCLK table has to have is missing. This table is mandatory",
> + return -EINVAL);
>
> PP_ASSERT_WITH_CODE(allowed_mclk_vddc_table != NULL,
> - "VDDC dependency on MCLK table is missing. This table is mandatory\n", return -EINVAL);
> + "VDDC dependency on MCLK table is missing. This table is mandatory",
> + return -EINVAL);
> PP_ASSERT_WITH_CODE(allowed_mclk_vddc_table->count >= 1,
> - "VDD dependency on MCLK table has to have is missing. This table is mandatory\n", return -EINVAL);
> + "VDD dependency on MCLK table has to have is missing. This table is mandatory",
> + return -EINVAL);
>
> data->min_vddc_in_pptable = (uint16_t)allowed_sclk_vddc_table->entries[0].v;
> data->max_vddc_in_pptable = (uint16_t)allowed_sclk_vddc_table->entries[allowed_sclk_vddc_table->count - 1].v;
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
> index 085d81c..427daa6 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/fiji_smumgr.c
> @@ -1799,7 +1799,7 @@ static int fiji_populate_clock_stretcher_data_table(struct pp_hwmgr *hwmgr)
> phm_cap_unset(hwmgr->platform_descriptor.platformCaps,
> PHM_PlatformCaps_ClockStretcher);
> PP_ASSERT_WITH_CODE(false,
> - "Stretch Amount in PPTable not supported\n",
> + "Stretch Amount in PPTable not supported",
> return -EINVAL);
> }
>
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
> index 1253126..6400065 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/iceland_smumgr.c
> @@ -546,7 +546,7 @@ static int iceland_get_std_voltage_value_sidd(struct pp_hwmgr *hwmgr,
>
> /* SCLK/VDDC Dependency Table has to exist. */
> PP_ASSERT_WITH_CODE(NULL != hwmgr->dyn_state.vddc_dependency_on_sclk,
> - "The SCLK/VDDC Dependency Table does not exist.\n",
> + "The SCLK/VDDC Dependency Table does not exist.",
> return -EINVAL);
>
> if (NULL == hwmgr->dyn_state.cac_leakage_table) {
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
> index cdb4765..fd874f7 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
> @@ -1652,7 +1652,7 @@ static int polaris10_populate_clock_stretcher_data_table(struct pp_hwmgr *hwmgr)
> phm_cap_unset(hwmgr->platform_descriptor.platformCaps,
> PHM_PlatformCaps_ClockStretcher);
> PP_ASSERT_WITH_CODE(false,
> - "Stretch Amount in PPTable not supported\n",
> + "Stretch Amount in PPTable not supported",
> return -EINVAL);
> }
>
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
> index 79e5c05..5eb719e 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/tonga_smumgr.c
> @@ -1699,7 +1699,7 @@ static int tonga_populate_clock_stretcher_data_table(struct pp_hwmgr *hwmgr)
> phm_cap_unset(hwmgr->platform_descriptor.platformCaps,
> PHM_PlatformCaps_ClockStretcher);
> PP_ASSERT_WITH_CODE(false,
> - "Stretch Amount in PPTable not supported\n",
> + "Stretch Amount in PPTable not supported",
> return -EINVAL);
> }
>
>
> _______________________________________________
> dri-devel mailing list
> [email protected]
> https://lists.freedesktop.org/mailman/listinfo/dri-devel

2018-01-02 13:42:35

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH 04/12] ext2: drop unneeded newline

On Wed 27-12-17 23:30:42, Ted Tso wrote:
> On Wed, Dec 27, 2017 at 03:51:37PM +0100, Julia Lawall wrote:
> > ext2_msg prints a newline at the end of the message string, so the message
> > string does not need to include a newline explicitly. Done using
> > Coccinelle.
> >
> > Signed-off-by: Julia Lawall <[email protected]>
>
> Reviewed-by: Theodore Ts'o <[email protected]>

Thanks. I've picked up the patch to my tree.

Honza
--
Jan Kara <[email protected]>
SUSE Labs, CR

2018-01-02 13:52:41

by Bob Peterson

[permalink] [raw]
Subject: Re: [Cluster-devel] [PATCH 00/12] drop unneeded newline

----- Original Message -----
| Drop newline at the end of a message string when the printing function adds
| a newline.

Hi Julia,

NACK.

As much as it's a pain when searching the source code for output strings,
this patch set goes against the accepted Linux coding style document. See:

https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings

Regards,

Bob Peterson

2018-01-02 13:55:36

by Julia Lawall

[permalink] [raw]
Subject: Re: [Cluster-devel] [PATCH 00/12] drop unneeded newline



On Tue, 2 Jan 2018, Bob Peterson wrote:

> ----- Original Message -----
> | Drop newline at the end of a message string when the printing function adds
> | a newline.
>
> Hi Julia,
>
> NACK.
>
> As much as it's a pain when searching the source code for output strings,
> this patch set goes against the accepted Linux coding style document. See:
>
> https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings

I don't think that's the case:

"However, never break user-visible strings such as printk messages,
because that breaks the ability to grep for them."

julia

>
> Regards,
>
> Bob Peterson
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>

2018-01-02 13:56:30

by Bob Peterson

[permalink] [raw]
Subject: Re: [Cluster-devel] [PATCH 00/12] drop unneeded newline

----- Original Message -----
| ----- Original Message -----
| | Drop newline at the end of a message string when the printing function adds
| | a newline.
|
| Hi Julia,
|
| NACK.
|
| As much as it's a pain when searching the source code for output strings,
| this patch set goes against the accepted Linux coding style document. See:
|
| https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings
|
| Regards,
|
| Bob Peterson
|
|
Hm. I guess I stand corrected. The document reads:

"However, never break user-visible strings such as printk messages, because that breaks the ability to grep for them."

Still, the GFS2 and DLM code has a plethora of broken-up printk messages,
and I don't like the thought of re-combining them all.

Regards,

Bob Peterson

2018-01-02 14:00:57

by Julia Lawall

[permalink] [raw]
Subject: Re: [Cluster-devel] [PATCH 00/12] drop unneeded newline



On Tue, 2 Jan 2018, Bob Peterson wrote:

> ----- Original Message -----
> | ----- Original Message -----
> | | Drop newline at the end of a message string when the printing function adds
> | | a newline.
> |
> | Hi Julia,
> |
> | NACK.
> |
> | As much as it's a pain when searching the source code for output strings,
> | this patch set goes against the accepted Linux coding style document. See:
> |
> | https://www.kernel.org/doc/html/v4.10/process/coding-style.html#breaking-long-lines-and-strings
> |
> | Regards,
> |
> | Bob Peterson
> |
> |
> Hm. I guess I stand corrected. The document reads:
>
> "However, never break user-visible strings such as printk messages, because that breaks the ability to grep for them."
>
> Still, the GFS2 and DLM code has a plethora of broken-up printk messages,
> and I don't like the thought of re-combining them all.

Actually, the point of the patch was to remove the unnecessary \n at the
end of the string, because log_print will add another one. If you prefer
to keep the string broken up, I can resend the patch in that form, but
without the unnecessary \n.

julia

2018-01-02 15:11:53

by Bart Van Assche

[permalink] [raw]
Subject: Re: [Cluster-devel] [PATCH 00/12] drop unneeded newline

On Tue, 2018-01-02 at 15:00 +0100, Julia Lawall wrote:
> On Tue, 2 Jan 2018, Bob Peterson wrote:
> > ----- Original Message -----
> > > ----- Original Message -----
> > >
> > Still, the GFS2 and DLM code has a plethora of broken-up printk messages,
> > and I don't like the thought of re-combining them all.
>
> Actually, the point of the patch was to remove the unnecessary \n at the
> end of the string, because log_print will add another one. If you prefer
> to keep the string broken up, I can resend the patch in that form, but
> without the unnecessary \n.

Please combine any user-visible strings into a single line for which the
unneeded newline is dropped since these strings are modified anyway by
your patch.

Thanks,

Bart.

2018-01-02 15:16:41

by Julia Lawall

[permalink] [raw]
Subject: Re: [Cluster-devel] [PATCH 00/12] drop unneeded newline



On Tue, 2 Jan 2018, Bart Van Assche wrote:

> On Tue, 2018-01-02 at 15:00 +0100, Julia Lawall wrote:
> > On Tue, 2 Jan 2018, Bob Peterson wrote:
> > > ----- Original Message -----
> > > > ----- Original Message -----
> > > >
> > > Still, the GFS2 and DLM code has a plethora of broken-up printk messages,
> > > and I don't like the thought of re-combining them all.
> >
> > Actually, the point of the patch was to remove the unnecessary \n at the
> > end of the string, because log_print will add another one. If you prefer
> > to keep the string broken up, I can resend the patch in that form, but
> > without the unnecessary \n.
>
> Please combine any user-visible strings into a single line for which the
> unneeded newline is dropped since these strings are modified anyway by
> your patch.

That is what the submitted patch (2/12 specifically) did.

julia

2018-01-02 18:50:29

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 03/12] net: dccp: drop unneeded newline

From: Julia Lawall <[email protected]>
Date: Wed, 27 Dec 2017 15:51:36 +0100

> DCCP_CRIT prints some other text and then a newline after the message
> string, so the message string does not need to include a newline
> explicitly. Done using Coccinelle.
>
> Signed-off-by: Julia Lawall <[email protected]>

Applied.

2018-01-02 18:50:35

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 05/12] openvswitch: drop unneeded newline

From: Julia Lawall <[email protected]>
Date: Wed, 27 Dec 2017 15:51:38 +0100

> OVS_NLERR prints a newline at the end of the message string, so the
> message string does not need to include a newline explicitly. Done
> using Coccinelle.
>
> Signed-off-by: Julia Lawall <[email protected]>

Applied.

2018-01-04 04:30:36

by Martin K. Petersen

[permalink] [raw]
Subject: Re: [PATCH 10/12] hpsa: drop unneeded newline


Julia,

> hpsa_show_dev_msg prints other information and a newline after the
> message string, so the message string does not need to include a
> newline explicitly. Done using Coccinelle.

Applied to 4.16/scsi-queue, thanks.

--
Martin K. Petersen Oracle Linux Engineering

2018-01-05 13:57:23

by Sekhar Nori

[permalink] [raw]
Subject: Re: [PATCH 07/12] ARM: davinci: drop unneeded newline

On Wednesday 27 December 2017 08:21 PM, Julia Lawall wrote:
> gpio_request uses its second argument as a label, so it doesn't seem
> appropriate for it to have a newline. Done using Coccinelle.
>
> Signed-off-by: Julia Lawall <[email protected]>

Applied to my v4.16/soc branch

Thanks,
Sekhar