* [PATCH] mmc: core: remove unnecessary (void*) conversions @ 2023-03-17 6:47 Yu Zhe 2023-03-23 12:13 ` Ulf Hansson ` (2 more replies) 0 siblings, 3 replies; 10+ messages in thread From: Yu Zhe @ 2023-03-17 6:47 UTC (permalink / raw) To: ulf.hansson; +Cc: linux-mmc, linux-kernel, kernel-janitors, liqiong, Yu Zhe Pointer variables of void * type do not require type cast. Signed-off-by: Yu Zhe <yuzhe@nfschina.com> --- drivers/mmc/core/debugfs.c | 2 +- drivers/mmc/core/host.c | 2 +- drivers/mmc/core/mmc_test.c | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c index fe6808771bc7..2c97b94aab23 100644 --- a/drivers/mmc/core/debugfs.c +++ b/drivers/mmc/core/debugfs.c @@ -246,7 +246,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(mmc_err_state, mmc_err_state_get, NULL, "%llu\n"); static int mmc_err_stats_show(struct seq_file *file, void *data) { - struct mmc_host *host = (struct mmc_host *)file->private; + struct mmc_host *host = file->private; const char *desc[MMC_ERR_MAX] = { [MMC_ERR_CMD_TIMEOUT] = "Command Timeout Occurred", [MMC_ERR_CMD_CRC] = "Command CRC Errors Occurred", diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c index 096093f7be00..76900f67c782 100644 --- a/drivers/mmc/core/host.c +++ b/drivers/mmc/core/host.c @@ -590,7 +590,7 @@ EXPORT_SYMBOL(mmc_alloc_host); static void devm_mmc_host_release(struct device *dev, void *res) { - mmc_free_host(*(struct mmc_host **)res); + mmc_free_host(res); } struct mmc_host *devm_mmc_alloc_host(struct device *dev, int extra) diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c index 156d34b2ed4d..0f6a563103fd 100644 --- a/drivers/mmc/core/mmc_test.c +++ b/drivers/mmc/core/mmc_test.c @@ -3045,7 +3045,7 @@ static LIST_HEAD(mmc_test_file_test); static int mtf_test_show(struct seq_file *sf, void *data) { - struct mmc_card *card = (struct mmc_card *)sf->private; + struct mmc_card *card = sf->private; struct mmc_test_general_result *gr; mutex_lock(&mmc_test_lock); @@ -3079,8 +3079,8 @@ static int mtf_test_open(struct inode *inode, struct file *file) static ssize_t mtf_test_write(struct file *file, const char __user *buf, size_t count, loff_t *pos) { - struct seq_file *sf = (struct seq_file *)file->private_data; - struct mmc_card *card = (struct mmc_card *)sf->private; + struct seq_file *sf = file->private_data; + struct mmc_card *card = sf->private; struct mmc_test_card *test; long testcase; int ret; -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH] mmc: core: remove unnecessary (void*) conversions 2023-03-17 6:47 [PATCH] mmc: core: remove unnecessary (void*) conversions Yu Zhe @ 2023-03-23 12:13 ` Ulf Hansson [not found] ` <CGME20230324132858eucas1p25cdd6af81a14bf40474f58fa16d087f5@eucas1p2.samsung.com> 2023-03-28 3:10 ` [PATCH v2] " Yu Zhe 2 siblings, 0 replies; 10+ messages in thread From: Ulf Hansson @ 2023-03-23 12:13 UTC (permalink / raw) To: Yu Zhe; +Cc: linux-mmc, linux-kernel, kernel-janitors, liqiong On Fri, 17 Mar 2023 at 07:48, Yu Zhe <yuzhe@nfschina.com> wrote: > > Pointer variables of void * type do not require type cast. > > Signed-off-by: Yu Zhe <yuzhe@nfschina.com> Applied for next, thanks! Kind regards Uffe > --- > drivers/mmc/core/debugfs.c | 2 +- > drivers/mmc/core/host.c | 2 +- > drivers/mmc/core/mmc_test.c | 6 +++--- > 3 files changed, 5 insertions(+), 5 deletions(-) > > diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c > index fe6808771bc7..2c97b94aab23 100644 > --- a/drivers/mmc/core/debugfs.c > +++ b/drivers/mmc/core/debugfs.c > @@ -246,7 +246,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(mmc_err_state, mmc_err_state_get, NULL, "%llu\n"); > > static int mmc_err_stats_show(struct seq_file *file, void *data) > { > - struct mmc_host *host = (struct mmc_host *)file->private; > + struct mmc_host *host = file->private; > const char *desc[MMC_ERR_MAX] = { > [MMC_ERR_CMD_TIMEOUT] = "Command Timeout Occurred", > [MMC_ERR_CMD_CRC] = "Command CRC Errors Occurred", > diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c > index 096093f7be00..76900f67c782 100644 > --- a/drivers/mmc/core/host.c > +++ b/drivers/mmc/core/host.c > @@ -590,7 +590,7 @@ EXPORT_SYMBOL(mmc_alloc_host); > > static void devm_mmc_host_release(struct device *dev, void *res) > { > - mmc_free_host(*(struct mmc_host **)res); > + mmc_free_host(res); > } > > struct mmc_host *devm_mmc_alloc_host(struct device *dev, int extra) > diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c > index 156d34b2ed4d..0f6a563103fd 100644 > --- a/drivers/mmc/core/mmc_test.c > +++ b/drivers/mmc/core/mmc_test.c > @@ -3045,7 +3045,7 @@ static LIST_HEAD(mmc_test_file_test); > > static int mtf_test_show(struct seq_file *sf, void *data) > { > - struct mmc_card *card = (struct mmc_card *)sf->private; > + struct mmc_card *card = sf->private; > struct mmc_test_general_result *gr; > > mutex_lock(&mmc_test_lock); > @@ -3079,8 +3079,8 @@ static int mtf_test_open(struct inode *inode, struct file *file) > static ssize_t mtf_test_write(struct file *file, const char __user *buf, > size_t count, loff_t *pos) > { > - struct seq_file *sf = (struct seq_file *)file->private_data; > - struct mmc_card *card = (struct mmc_card *)sf->private; > + struct seq_file *sf = file->private_data; > + struct mmc_card *card = sf->private; > struct mmc_test_card *test; > long testcase; > int ret; > -- > 2.11.0 > ^ permalink raw reply [flat|nested] 10+ messages in thread
[parent not found: <CGME20230324132858eucas1p25cdd6af81a14bf40474f58fa16d087f5@eucas1p2.samsung.com>]
* Re: [PATCH] mmc: core: remove unnecessary (void*) conversions [not found] ` <CGME20230324132858eucas1p25cdd6af81a14bf40474f58fa16d087f5@eucas1p2.samsung.com> @ 2023-03-24 13:28 ` Marek Szyprowski 2023-03-24 15:46 ` Ulf Hansson 2023-03-24 16:39 ` Dan Carpenter 0 siblings, 2 replies; 10+ messages in thread From: Marek Szyprowski @ 2023-03-24 13:28 UTC (permalink / raw) To: Yu Zhe, ulf.hansson; +Cc: linux-mmc, linux-kernel, kernel-janitors, liqiong On 17.03.2023 07:47, Yu Zhe wrote: > Pointer variables of void * type do not require type cast. > > Signed-off-by: Yu Zhe <yuzhe@nfschina.com> > --- > drivers/mmc/core/debugfs.c | 2 +- > drivers/mmc/core/host.c | 2 +- > drivers/mmc/core/mmc_test.c | 6 +++--- > 3 files changed, 5 insertions(+), 5 deletions(-) ... > diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c > index 096093f7be00..76900f67c782 100644 > --- a/drivers/mmc/core/host.c > +++ b/drivers/mmc/core/host.c > @@ -590,7 +590,7 @@ EXPORT_SYMBOL(mmc_alloc_host); > > static void devm_mmc_host_release(struct device *dev, void *res) > { > - mmc_free_host(*(struct mmc_host **)res); > + mmc_free_host(res); The above chunk is wrong and causes following regression on today's Linux next-20230324: Unable to handle kernel paging request at virtual address 0000000000001020 Mem abort info: meson-gx-mmc ffe07000.mmc: allocated mmc-pwrseq ... [0000000000001020] user address but active_mm is swapper Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP Modules linked in: CPU: 3 PID: 10 Comm: kworker/u12:0 Not tainted 6.3.0-rc3-next-20230324+ #13452 Hardware name: Khadas VIM3 (DT) Workqueue: events_unbound async_run_entry_fn pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : mmc_pwrseq_free+0x1c/0x38 lr : devm_mmc_host_release+0x1c/0x34 ... Call trace: mmc_pwrseq_free+0x1c/0x38 devm_mmc_host_release+0x1c/0x34 release_nodes+0x5c/0x90 devres_release_all+0x8c/0xdc device_unbind_cleanup+0x18/0x68 really_probe+0x11c/0x2b4 __driver_probe_device+0x78/0xe0 driver_probe_device+0xd8/0x160 __device_attach_driver+0xb8/0x138 bus_for_each_drv+0x84/0xe0 __device_attach_async_helper+0xb0/0xd4 async_run_entry_fn+0x34/0xe0 process_one_work+0x288/0x5c0 worker_thread+0x74/0x450 kthread+0x124/0x128 ret_from_fork+0x10/0x20 Code: f9000bf3 aa0003f3 f9424c00 b4000080 (f9401000) ---[ end trace 0000000000000000 ]--- Ulf: do You want me to send a partial revert or will you handle it by dropping this patch? Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mmc: core: remove unnecessary (void*) conversions 2023-03-24 13:28 ` Marek Szyprowski @ 2023-03-24 15:46 ` Ulf Hansson 2023-03-24 16:39 ` Dan Carpenter 1 sibling, 0 replies; 10+ messages in thread From: Ulf Hansson @ 2023-03-24 15:46 UTC (permalink / raw) To: Marek Szyprowski Cc: Yu Zhe, linux-mmc, linux-kernel, kernel-janitors, liqiong On Fri, 24 Mar 2023 at 14:28, Marek Szyprowski <m.szyprowski@samsung.com> wrote: > > On 17.03.2023 07:47, Yu Zhe wrote: > > Pointer variables of void * type do not require type cast. > > > > Signed-off-by: Yu Zhe <yuzhe@nfschina.com> > > --- > > drivers/mmc/core/debugfs.c | 2 +- > > drivers/mmc/core/host.c | 2 +- > > drivers/mmc/core/mmc_test.c | 6 +++--- > > 3 files changed, 5 insertions(+), 5 deletions(-) > ... > > diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c > > index 096093f7be00..76900f67c782 100644 > > --- a/drivers/mmc/core/host.c > > +++ b/drivers/mmc/core/host.c > > @@ -590,7 +590,7 @@ EXPORT_SYMBOL(mmc_alloc_host); > > > > static void devm_mmc_host_release(struct device *dev, void *res) > > { > > - mmc_free_host(*(struct mmc_host **)res); > > + mmc_free_host(res); > > The above chunk is wrong and causes following regression on today's > Linux next-20230324: > > Unable to handle kernel paging request at virtual address 0000000000001020 > Mem abort info: > meson-gx-mmc ffe07000.mmc: allocated mmc-pwrseq > ... > [0000000000001020] user address but active_mm is swapper > Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP > Modules linked in: > CPU: 3 PID: 10 Comm: kworker/u12:0 Not tainted 6.3.0-rc3-next-20230324+ > #13452 > Hardware name: Khadas VIM3 (DT) > Workqueue: events_unbound async_run_entry_fn > pstate: 00000005 (nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > pc : mmc_pwrseq_free+0x1c/0x38 > lr : devm_mmc_host_release+0x1c/0x34 > ... > Call trace: > mmc_pwrseq_free+0x1c/0x38 > devm_mmc_host_release+0x1c/0x34 > release_nodes+0x5c/0x90 > devres_release_all+0x8c/0xdc > device_unbind_cleanup+0x18/0x68 > really_probe+0x11c/0x2b4 > __driver_probe_device+0x78/0xe0 > driver_probe_device+0xd8/0x160 > __device_attach_driver+0xb8/0x138 > bus_for_each_drv+0x84/0xe0 > __device_attach_async_helper+0xb0/0xd4 > async_run_entry_fn+0x34/0xe0 > process_one_work+0x288/0x5c0 > worker_thread+0x74/0x450 > kthread+0x124/0x128 > ret_from_fork+0x10/0x20 > Code: f9000bf3 aa0003f3 f9424c00 b4000080 (f9401000) > ---[ end trace 0000000000000000 ]--- > > Ulf: do You want me to send a partial revert or will you handle it by > dropping this patch? Thanks for the report, I will simply drop the patch! Kind regards Uffe ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mmc: core: remove unnecessary (void*) conversions 2023-03-24 13:28 ` Marek Szyprowski 2023-03-24 15:46 ` Ulf Hansson @ 2023-03-24 16:39 ` Dan Carpenter 2023-03-27 10:26 ` Ulf Hansson 1 sibling, 1 reply; 10+ messages in thread From: Dan Carpenter @ 2023-03-24 16:39 UTC (permalink / raw) To: Marek Szyprowski Cc: Yu Zhe, ulf.hansson, linux-mmc, linux-kernel, kernel-janitors, liqiong [-- Attachment #1: Type: text/plain, Size: 1515 bytes --] On Fri, Mar 24, 2023 at 02:28:57PM +0100, Marek Szyprowski wrote: > On 17.03.2023 07:47, Yu Zhe wrote: > > Pointer variables of void * type do not require type cast. > > > > Signed-off-by: Yu Zhe <yuzhe@nfschina.com> > > --- > > drivers/mmc/core/debugfs.c | 2 +- > > drivers/mmc/core/host.c | 2 +- > > drivers/mmc/core/mmc_test.c | 6 +++--- > > 3 files changed, 5 insertions(+), 5 deletions(-) > ... > > diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c > > index 096093f7be00..76900f67c782 100644 > > --- a/drivers/mmc/core/host.c > > +++ b/drivers/mmc/core/host.c > > @@ -590,7 +590,7 @@ EXPORT_SYMBOL(mmc_alloc_host); > > > > static void devm_mmc_host_release(struct device *dev, void *res) > > { > > - mmc_free_host(*(struct mmc_host **)res); > > + mmc_free_host(res); > > The above chunk is wrong and causes following regression on today's > Linux next-20230324: Ugh... Ok. I have a script that I use to help review mechanical patches. I have added an '-r cast' option to help review "remove unnecessary cast" patches. If you do `cat this_email.txt | rename_rev.pl -r cast` then the output looks like: ================ static void devm_mmc_host_release(struct device *dev, void *res) { - mmc_free_host(*res); + mmc_free_host(res); } struct mmc_host *devm_mmc_alloc_host(struct device *dev, int extra) ================ I have gone through all of Yu Zhe's patches and the rest are okay. I've attached my rename_rev.pl script. regards, dan carpenter [-- Attachment #2: rename_rev.pl --] [-- Type: text/x-perl, Size: 11308 bytes --] #!/usr/bin/perl # This is a tool to help review variable rename patches. The goal is # to strip out the automatic sed renames and the white space changes # and leaves the interesting code changes. # # Example 1: A patch renames openInfo to open_info: # cat diff | rename_review.pl openInfo open_info # # Example 2: A patch swaps the first two arguments to some_func(): # cat diff | rename_review.pl \ # -e 's/some_func\((.*?),(.*?),/some_func\($2, $1,/' # # Example 3: A patch removes the xkcd_ prefix from some but not all the # variables. Instead of trying to figure out which variables were renamed # just remove the prefix from them all: # cat diff | rename_review.pl -ea 's/xkcd_//g' # # Example 4: A patch renames 20 CamelCase variables. To review this let's # just ignore all case changes and all '_' chars. # cat diff | rename_review -ea 'tr/[A-Z]/[a-z]/' -ea 's/_//g' # # The other arguments are: # -nc removes comments # -ns removes '\' chars if they are at the end of the line. use strict; use File::Temp qw/ :mktemp /; sub usage() { print "usage: cat diff | $0 old new old new old new...\n"; print " or: cat diff | $0 -e 's/old/new/g'\n"; print " -a : auto"; print " -e : execute on old lines\n"; print " -ea: execute on all lines\n"; print " -nc: no comments\n"; print " -nb: no unneeded braces\n"; print " -ns: no slashes at the end of a line\n"; print " -pull: for function pull. deletes context.\n"; print " -r <recipe>: NULL, bool, cast"; exit(1); } my @subs; my @strict_subs; my @cmds; my $strip_comments; my $strip_braces; my $strip_slashes; my $pull_context; my $auto; sub filter($) { my $line = shift(); my $old = 0; if ($line =~ /^-/) { $old = 1; } # remove the first char $line =~ s/^[ +-]//; if ($strip_comments) { $line =~ s/\/\*.*?\*\///g; $line =~ s/\/\/.*//; } foreach my $cmd (@cmds) { if ($old || $cmd->[0] =~ /^-ea$/) { eval "\$line =~ $cmd->[1]"; } } foreach my $sub (@subs) { if ($old) { $line =~ s/$sub->[0]/$sub->[1]/g; } } foreach my $sub (@strict_subs) { if ($old) { $line =~ s/\b$sub->[0]\b/$sub->[1]/g; } } # remove the newline so we can move curly braces here if we want. $line =~ s/\n//; return $line; } while (my $param1 = shift()) { if ($param1 =~ /^-a$/) { $auto = 1; next; } if ($param1 =~ /^-nc$/) { $strip_comments = 1; next; } if ($param1 =~ /^-nb$/) { $strip_braces = 1; next; } if ($param1 =~ /^-ns$/) { $strip_slashes = 1; next; } if ($param1 =~ /^-pull$/) { $pull_context = 1; next; } my $param2 = shift(); if ($param2 =~ /^$/) { usage(); } if ($param1 =~ /^-e(a|)$/) { push @cmds, [$param1, $param2]; next; } if ($param1 =~ /^-r$/) { if ($param2 =~ /bool/) { push @cmds, ["-e", "s/== true//"]; push @cmds, ["-e", "s/true ==//"]; push @cmds, ["-e", "s/([a-zA-Z\-\>\._]+) == false/!\$1/"]; next; } elsif ($param2 =~ /NULL/) { push @cmds, ["-e", "s/ != NULL//"]; push @cmds, ["-e", "s/([a-zA-Z\-\>\._0-9]+) == NULL/!\$1/"]; next; } elsif ($param2 =~ /^BIT$/) { push @cmds, ["-e", 's/1[uU]* *<< *(\d+)/BIT($1)/']; push @cmds, ["-e", 's/\(1 *<< *(\w+)\)/BIT($1)/']; push @cmds, ["-e", 's/\(BIT\((.*?)\)\)/BIT($1)/']; next; } elsif ($param2 =~ /^HBIT$/) { push @cmds, ["-e", 's/0x0*1\b/BIT(0)/']; push @cmds, ["-e", 's/0x0*2\b/BIT(1)/']; push @cmds, ["-e", 's/0x0*4\b/BIT(2)/']; push @cmds, ["-e", 's/0x0*8\b/BIT(3)/']; push @cmds, ["-e", 's/0x0*10\b/BIT(4)/']; push @cmds, ["-e", 's/0x0*20\b/BIT(5)/']; push @cmds, ["-e", 's/0x0*40\b/BIT(6)/']; push @cmds, ["-e", 's/0x0*80\b/BIT(7)/']; next; } elsif ($param2 =~ /cast/) { push @cmds, ["-e", 's/\(struct .*?\)//']; next; } usage(); } push @subs, [$param1, $param2]; } my ($oldfh, $oldfile) = mkstemp("/tmp/oldXXXXX"); my ($newfh, $newfile) = mkstemp("/tmp/newXXXXX"); my @input = <STDIN>; # auto works on the observation that the - line comes before the + line when we # rename variables. Take the first - line. Find the first + line. Find the # one word difference. Test that the old word never occurs in the new text. if ($auto) { my %c_keywords = ( auto => 1, break => 1, case => 1, char => 1, const => 1, continue => 1, default => 1, do => 1, double => 1, else => 1, enum => 1, extern => 1, float => 1, for => 1, goto => 1, if => 1, int => 1, long => 1, register => 1, return => 1, short => 1, signed => 1, sizeof => 1, static => 1, struct => 1, switch => 1, typedef => 1, union => 1, unsigned => 1, void => 1, volatile => 1, while => 1); my %old_words; my %new_words; my %added_cmds; my @new_subs; my $inside = 0; foreach my $line (@input) { if ($line =~ /^(---|\+\+\+)/) { next; } if ($line =~ /^@/) { $inside = 1; } if ($inside && !(($_ =~ /^[- @+]/) || ($_ =~ /^$/))) { $inside = 0; } if (!$inside) { next; } if ($line =~ /^-/) { s/-//; my @words = split(/\W+/, $line); foreach my $word (@words) { $old_words{$word} = 1; } } elsif ($line =~ /^\+/) { s/\+//; my @words = split(/\W+/, $line); foreach my $word (@words) { $new_words{$word} = 1; } } } my $old_line; my $new_line; $inside = 0; foreach my $line (@input) { if ($line =~ /^(---|\+\+\+)/) { next; } if ($line =~ /^@/) { $inside = 1; } if ($inside && !(($_ =~ /^[- @+]/) || ($_ =~ /^$/))) { $inside = 0; } if (!$inside) { next; } if ($line =~ /^-/ && !$old_line) { s/^-//; $old_line = $line; next; } elsif ($old_line && $line =~ /^\+/) { s/^\+//; $new_line = $line; } else { next; } my @old_words = split(/\W+/, $old_line); my @new_words = split(/\W+/, $new_line); my @new_cmds; my $i; my $diff_count = 0; for ($i = 0; ; $i++) { if (!defined($old_words[$i]) && !defined($new_words[$i])) { last; } if (!defined($old_words[$i]) || !defined($new_words[$i])) { $diff_count = 1000; last; } if ($old_words[$i] eq $new_words[$i]) { next; } if ($c_keywords{$old_words[$i]}) { $diff_count = 1000; last; } if ($new_words{$old_words[$i]}) { $diff_count++; } push @new_cmds, [$old_words[$i], $new_words[$i]]; } if ($diff_count <= 2) { foreach my $sub (@new_cmds) { if ($added_cmds{$sub->[0] . $sub->[1]}) { next; } $added_cmds{$sub->[0] . $sub->[1]} = 1; push @new_subs, [$sub->[0] , $sub->[1]]; } } $old_line = 0; } if (@new_subs) { print "RENAMES:\n"; foreach my $sub (@new_subs) { print "$sub->[0] => $sub->[1]\n"; push @strict_subs, [$sub->[0] , $sub->[1]]; } print "---\n"; } } my $output; #recreate an old file and a new file my $inside = 0; foreach (@input) { if ($pull_context && !($_ =~ /^[+-@]/)) { next; } if ($_ =~ /^(---|\+\+\+)/) { next; } if ($_ =~ /^@/) { $inside = 1; } if ($inside && !(($_ =~ /^[- @+]/) || ($_ =~ /^$/))) { $inside = 0; } if (!$inside) { next; } $output = filter($_); if ($strip_braces && $_ =~ /^(\+|-)\W+{/) { $output =~ s/^[\t ]+(.*)/ $1/; } else { $output = "\n" . $output; } if ($_ =~ /^-/) { print $oldfh $output; next; } if ($_ =~ /^\+/) { print $newfh $output; next; } print $oldfh $output; print $newfh $output; } print $oldfh "\n"; print $newfh "\n"; # git diff puts a -- and version at the end of the diff. put the -- into the # new file as well so it's ignored if ($output =~ /\n-/) { print $newfh "-\n"; } my $hunk; my $old_txt; my $new_txt; open diff, "diff -uw $oldfile $newfile |"; while (<diff>) { if ($_ =~ /^(---|\+\+\+)/) { next; } if ($_ =~ /^@/) { if ($strip_comments) { $old_txt =~ s/\/\*.*?\*\///g; $new_txt =~ s/\/\*.*?\*\///g; } if ($strip_braces) { $old_txt =~ s/{([^;{]*?);}/$1;/g; $new_txt =~ s/{([^;{]*?);}/$1;/g; # this is a hack because i don't know how to replace nested # unneeded curly braces. $old_txt =~ s/{([^;{]*?);}/$1;/g; $new_txt =~ s/{([^;{]*?);}/$1;/g; } if ($old_txt ne $new_txt) { print $hunk; print $_; } $hunk = ""; $old_txt = ""; $new_txt = ""; next; } $hunk = $hunk . $_; if ($strip_slashes) { s/\\$//; } if ($_ =~ /^-/) { s/-//; s/[ \t\n]//g; $old_txt = $old_txt . $_; next; } if ($_ =~ /^\+/) { s/\+//; s/[ \t\n]//g; $new_txt = $new_txt . $_; next; } if ($_ =~ /^ /) { s/^ //; s/[ \t\n]//g; $old_txt = $old_txt . $_; $new_txt = $new_txt . $_; } } if ($old_txt ne $new_txt) { if ($strip_comments) { $old_txt =~ s/\/\*.*?\*\///g; $new_txt =~ s/\/\*.*?\*\///g; } if ($strip_braces) { $old_txt =~ s/{([^;{]*?);}/$1;/g; $new_txt =~ s/{([^;{]*?);}/$1;/g; $old_txt =~ s/{([^;{]*?);}/$1;/g; $new_txt =~ s/{([^;{]*?);}/$1;/g; } print $hunk; } unlink($oldfile); unlink($newfile); print "\ndone.\n"; ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH] mmc: core: remove unnecessary (void*) conversions 2023-03-24 16:39 ` Dan Carpenter @ 2023-03-27 10:26 ` Ulf Hansson 0 siblings, 0 replies; 10+ messages in thread From: Ulf Hansson @ 2023-03-27 10:26 UTC (permalink / raw) To: Dan Carpenter Cc: Marek Szyprowski, Yu Zhe, linux-mmc, linux-kernel, kernel-janitors, liqiong On Fri, 24 Mar 2023 at 17:39, Dan Carpenter <error27@gmail.com> wrote: > > On Fri, Mar 24, 2023 at 02:28:57PM +0100, Marek Szyprowski wrote: > > On 17.03.2023 07:47, Yu Zhe wrote: > > > Pointer variables of void * type do not require type cast. > > > > > > Signed-off-by: Yu Zhe <yuzhe@nfschina.com> > > > --- > > > drivers/mmc/core/debugfs.c | 2 +- > > > drivers/mmc/core/host.c | 2 +- > > > drivers/mmc/core/mmc_test.c | 6 +++--- > > > 3 files changed, 5 insertions(+), 5 deletions(-) > > ... > > > diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c > > > index 096093f7be00..76900f67c782 100644 > > > --- a/drivers/mmc/core/host.c > > > +++ b/drivers/mmc/core/host.c > > > @@ -590,7 +590,7 @@ EXPORT_SYMBOL(mmc_alloc_host); > > > > > > static void devm_mmc_host_release(struct device *dev, void *res) > > > { > > > - mmc_free_host(*(struct mmc_host **)res); > > > + mmc_free_host(res); > > > > The above chunk is wrong and causes following regression on today's > > Linux next-20230324: > > Ugh... > > Ok. I have a script that I use to help review mechanical patches. I > have added an '-r cast' option to help review "remove unnecessary cast" > patches. > > If you do `cat this_email.txt | rename_rev.pl -r cast` then the output > looks like: > > ================ > static void devm_mmc_host_release(struct device *dev, void *res) > { > - mmc_free_host(*res); > + mmc_free_host(res); > } > > struct mmc_host *devm_mmc_alloc_host(struct device *dev, int extra) > ================ > > I have gone through all of Yu Zhe's patches and the rest are okay. > > I've attached my rename_rev.pl script. Thanks for helping out Dan! I will use your script next time! Kind regards Uffe ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2] mmc: core: remove unnecessary (void*) conversions 2023-03-17 6:47 [PATCH] mmc: core: remove unnecessary (void*) conversions Yu Zhe 2023-03-23 12:13 ` Ulf Hansson [not found] ` <CGME20230324132858eucas1p25cdd6af81a14bf40474f58fa16d087f5@eucas1p2.samsung.com> @ 2023-03-28 3:10 ` Yu Zhe 2023-04-03 11:24 ` Ulf Hansson 2 siblings, 1 reply; 10+ messages in thread From: Yu Zhe @ 2023-03-28 3:10 UTC (permalink / raw) To: ulf.hansson, adrian.hunter, quic_sayalil, quic_c_sbhanu, quic_luliang, m.szyprowski, wsa+renesas, yebin10 Cc: linux-mmc, linux-kernel, kernel-janitors, liqiong, Yu Zhe Pointer variables of void * type do not require type cast. Signed-off-by: Yu Zhe <yuzhe@nfschina.com> Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> --- drivers/mmc/core/debugfs.c | 2 +- drivers/mmc/core/mmc_test.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c index fe6808771bc7..2c97b94aab23 100644 --- a/drivers/mmc/core/debugfs.c +++ b/drivers/mmc/core/debugfs.c @@ -246,7 +246,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(mmc_err_state, mmc_err_state_get, NULL, "%llu\n"); static int mmc_err_stats_show(struct seq_file *file, void *data) { - struct mmc_host *host = (struct mmc_host *)file->private; + struct mmc_host *host = file->private; const char *desc[MMC_ERR_MAX] = { [MMC_ERR_CMD_TIMEOUT] = "Command Timeout Occurred", [MMC_ERR_CMD_CRC] = "Command CRC Errors Occurred", diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c index 156d34b2ed4d..0f6a563103fd 100644 --- a/drivers/mmc/core/mmc_test.c +++ b/drivers/mmc/core/mmc_test.c @@ -3045,7 +3045,7 @@ static LIST_HEAD(mmc_test_file_test); static int mtf_test_show(struct seq_file *sf, void *data) { - struct mmc_card *card = (struct mmc_card *)sf->private; + struct mmc_card *card = sf->private; struct mmc_test_general_result *gr; mutex_lock(&mmc_test_lock); @@ -3079,8 +3079,8 @@ static int mtf_test_open(struct inode *inode, struct file *file) static ssize_t mtf_test_write(struct file *file, const char __user *buf, size_t count, loff_t *pos) { - struct seq_file *sf = (struct seq_file *)file->private_data; - struct mmc_card *card = (struct mmc_card *)sf->private; + struct seq_file *sf = file->private_data; + struct mmc_card *card = sf->private; struct mmc_test_card *test; long testcase; int ret; -- 2.11.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mmc: core: remove unnecessary (void*) conversions 2023-03-28 3:10 ` [PATCH v2] " Yu Zhe @ 2023-04-03 11:24 ` Ulf Hansson 2023-04-03 11:47 ` Yu Zhe 0 siblings, 1 reply; 10+ messages in thread From: Ulf Hansson @ 2023-04-03 11:24 UTC (permalink / raw) To: Yu Zhe Cc: adrian.hunter, quic_sayalil, quic_c_sbhanu, quic_luliang, m.szyprowski, wsa+renesas, yebin10, linux-mmc, linux-kernel, kernel-janitors, liqiong On Tue, 28 Mar 2023 at 05:11, Yu Zhe <yuzhe@nfschina.com> wrote: > > Pointer variables of void * type do not require type cast. > > Signed-off-by: Yu Zhe <yuzhe@nfschina.com> > Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> Did Marek give his reviewed-by tag offlist? I couldn't find his reply, just to make sure this is correct? Kind regards Uffe > --- > drivers/mmc/core/debugfs.c | 2 +- > drivers/mmc/core/mmc_test.c | 6 +++--- > 2 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c > index fe6808771bc7..2c97b94aab23 100644 > --- a/drivers/mmc/core/debugfs.c > +++ b/drivers/mmc/core/debugfs.c > @@ -246,7 +246,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(mmc_err_state, mmc_err_state_get, NULL, "%llu\n"); > > static int mmc_err_stats_show(struct seq_file *file, void *data) > { > - struct mmc_host *host = (struct mmc_host *)file->private; > + struct mmc_host *host = file->private; > const char *desc[MMC_ERR_MAX] = { > [MMC_ERR_CMD_TIMEOUT] = "Command Timeout Occurred", > [MMC_ERR_CMD_CRC] = "Command CRC Errors Occurred", > diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c > index 156d34b2ed4d..0f6a563103fd 100644 > --- a/drivers/mmc/core/mmc_test.c > +++ b/drivers/mmc/core/mmc_test.c > @@ -3045,7 +3045,7 @@ static LIST_HEAD(mmc_test_file_test); > > static int mtf_test_show(struct seq_file *sf, void *data) > { > - struct mmc_card *card = (struct mmc_card *)sf->private; > + struct mmc_card *card = sf->private; > struct mmc_test_general_result *gr; > > mutex_lock(&mmc_test_lock); > @@ -3079,8 +3079,8 @@ static int mtf_test_open(struct inode *inode, struct file *file) > static ssize_t mtf_test_write(struct file *file, const char __user *buf, > size_t count, loff_t *pos) > { > - struct seq_file *sf = (struct seq_file *)file->private_data; > - struct mmc_card *card = (struct mmc_card *)sf->private; > + struct seq_file *sf = file->private_data; > + struct mmc_card *card = sf->private; > struct mmc_test_card *test; > long testcase; > int ret; > -- > 2.11.0 > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mmc: core: remove unnecessary (void*) conversions 2023-04-03 11:24 ` Ulf Hansson @ 2023-04-03 11:47 ` Yu Zhe 2023-04-03 12:35 ` Ulf Hansson 0 siblings, 1 reply; 10+ messages in thread From: Yu Zhe @ 2023-04-03 11:47 UTC (permalink / raw) To: Ulf Hansson Cc: adrian.hunter, quic_sayalil, quic_luliang, m.szyprowski, wsa+renesas, yebin10, linux-mmc, linux-kernel, kernel-janitors, liqiong > On Tue, 28 Mar 2023 at 05:11, Yu Zhe <yuzhe@nfschina.com> wrote: >> Pointer variables of void * type do not require type cast. >> >> Signed-off-by: Yu Zhe <yuzhe@nfschina.com> >> Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> > Did Marek give his reviewed-by tag offlist? I couldn't find his reply, > just to make sure this is correct? > > Kind regards > Uffe Sorry, it may be a misuse of "reviewed-by" tag, "Marek Szyprowski" gave the error report at the previous patch, so, i put the name at reviewed-by tag. > >> --- >> drivers/mmc/core/debugfs.c | 2 +- >> drivers/mmc/core/mmc_test.c | 6 +++--- >> 2 files changed, 4 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c >> index fe6808771bc7..2c97b94aab23 100644 >> --- a/drivers/mmc/core/debugfs.c >> +++ b/drivers/mmc/core/debugfs.c >> @@ -246,7 +246,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(mmc_err_state, mmc_err_state_get, NULL, "%llu\n"); >> >> static int mmc_err_stats_show(struct seq_file *file, void *data) >> { >> - struct mmc_host *host = (struct mmc_host *)file->private; >> + struct mmc_host *host = file->private; >> const char *desc[MMC_ERR_MAX] = { >> [MMC_ERR_CMD_TIMEOUT] = "Command Timeout Occurred", >> [MMC_ERR_CMD_CRC] = "Command CRC Errors Occurred", >> diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c >> index 156d34b2ed4d..0f6a563103fd 100644 >> --- a/drivers/mmc/core/mmc_test.c >> +++ b/drivers/mmc/core/mmc_test.c >> @@ -3045,7 +3045,7 @@ static LIST_HEAD(mmc_test_file_test); >> >> static int mtf_test_show(struct seq_file *sf, void *data) >> { >> - struct mmc_card *card = (struct mmc_card *)sf->private; >> + struct mmc_card *card = sf->private; >> struct mmc_test_general_result *gr; >> >> mutex_lock(&mmc_test_lock); >> @@ -3079,8 +3079,8 @@ static int mtf_test_open(struct inode *inode, struct file *file) >> static ssize_t mtf_test_write(struct file *file, const char __user *buf, >> size_t count, loff_t *pos) >> { >> - struct seq_file *sf = (struct seq_file *)file->private_data; >> - struct mmc_card *card = (struct mmc_card *)sf->private; >> + struct seq_file *sf = file->private_data; >> + struct mmc_card *card = sf->private; >> struct mmc_test_card *test; >> long testcase; >> int ret; >> -- >> 2.11.0 >> ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2] mmc: core: remove unnecessary (void*) conversions 2023-04-03 11:47 ` Yu Zhe @ 2023-04-03 12:35 ` Ulf Hansson 0 siblings, 0 replies; 10+ messages in thread From: Ulf Hansson @ 2023-04-03 12:35 UTC (permalink / raw) To: Yu Zhe Cc: adrian.hunter, quic_sayalil, quic_luliang, m.szyprowski, wsa+renesas, yebin10, linux-mmc, linux-kernel, kernel-janitors, liqiong On Mon, 3 Apr 2023 at 14:13, Yu Zhe <yuzhe@nfschina.com> wrote: > > > > On Tue, 28 Mar 2023 at 05:11, Yu Zhe <yuzhe@nfschina.com> wrote: > >> Pointer variables of void * type do not require type cast. > >> > >> Signed-off-by: Yu Zhe <yuzhe@nfschina.com> > >> Reviewed-by: Marek Szyprowski <m.szyprowski@samsung.com> > > Did Marek give his reviewed-by tag offlist? I couldn't find his reply, > > just to make sure this is correct? > > > > Kind regards > > Uffe > > > Sorry, it may be a misuse of "reviewed-by" tag, "Marek Szyprowski" gave the error > report at the previous patch, so, i put the name at reviewed-by tag. Yes, you shouldn't put his tag like this, unless he explicitly has said so. For bug reports we use "Reported-by:", but in this case I decided it was better to drop the offending commit, which means this isn't applicable here. Anyway, there is no need to resend, I will just drop the tag when applying. Kind regards Uffe > > > > >> --- > >> drivers/mmc/core/debugfs.c | 2 +- > >> drivers/mmc/core/mmc_test.c | 6 +++--- > >> 2 files changed, 4 insertions(+), 4 deletions(-) > >> > >> diff --git a/drivers/mmc/core/debugfs.c b/drivers/mmc/core/debugfs.c > >> index fe6808771bc7..2c97b94aab23 100644 > >> --- a/drivers/mmc/core/debugfs.c > >> +++ b/drivers/mmc/core/debugfs.c > >> @@ -246,7 +246,7 @@ DEFINE_DEBUGFS_ATTRIBUTE(mmc_err_state, mmc_err_state_get, NULL, "%llu\n"); > >> > >> static int mmc_err_stats_show(struct seq_file *file, void *data) > >> { > >> - struct mmc_host *host = (struct mmc_host *)file->private; > >> + struct mmc_host *host = file->private; > >> const char *desc[MMC_ERR_MAX] = { > >> [MMC_ERR_CMD_TIMEOUT] = "Command Timeout Occurred", > >> [MMC_ERR_CMD_CRC] = "Command CRC Errors Occurred", > >> diff --git a/drivers/mmc/core/mmc_test.c b/drivers/mmc/core/mmc_test.c > >> index 156d34b2ed4d..0f6a563103fd 100644 > >> --- a/drivers/mmc/core/mmc_test.c > >> +++ b/drivers/mmc/core/mmc_test.c > >> @@ -3045,7 +3045,7 @@ static LIST_HEAD(mmc_test_file_test); > >> > >> static int mtf_test_show(struct seq_file *sf, void *data) > >> { > >> - struct mmc_card *card = (struct mmc_card *)sf->private; > >> + struct mmc_card *card = sf->private; > >> struct mmc_test_general_result *gr; > >> > >> mutex_lock(&mmc_test_lock); > >> @@ -3079,8 +3079,8 @@ static int mtf_test_open(struct inode *inode, struct file *file) > >> static ssize_t mtf_test_write(struct file *file, const char __user *buf, > >> size_t count, loff_t *pos) > >> { > >> - struct seq_file *sf = (struct seq_file *)file->private_data; > >> - struct mmc_card *card = (struct mmc_card *)sf->private; > >> + struct seq_file *sf = file->private_data; > >> + struct mmc_card *card = sf->private; > >> struct mmc_test_card *test; > >> long testcase; > >> int ret; > >> -- > >> 2.11.0 > >> ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2023-04-03 12:36 UTC | newest] Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-03-17 6:47 [PATCH] mmc: core: remove unnecessary (void*) conversions Yu Zhe 2023-03-23 12:13 ` Ulf Hansson [not found] ` <CGME20230324132858eucas1p25cdd6af81a14bf40474f58fa16d087f5@eucas1p2.samsung.com> 2023-03-24 13:28 ` Marek Szyprowski 2023-03-24 15:46 ` Ulf Hansson 2023-03-24 16:39 ` Dan Carpenter 2023-03-27 10:26 ` Ulf Hansson 2023-03-28 3:10 ` [PATCH v2] " Yu Zhe 2023-04-03 11:24 ` Ulf Hansson 2023-04-03 11:47 ` Yu Zhe 2023-04-03 12:35 ` Ulf Hansson
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.