Staging: Media: Lirc - Fix possible ERR_PTR() dereferencing.
This is of course wrong to call kfree() if memdup_user() fails, no memory was allocated and the error in the error-valued pointer should be returned. Reviewed-by: Ravikant Sharma Signed-off-by: Shailendra Verma --- drivers/staging/media/lirc/lirc_imon.c | 7 ++- drivers/staging/media/lirc/lirc_sasem.c | 7 ++- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/drivers/staging/media/lirc/lirc_imon.c b/drivers/staging/media/lirc/lirc_imon.c index 534b810..c21591b 100644 --- a/drivers/staging/media/lirc/lirc_imon.c +++ b/drivers/staging/media/lirc/lirc_imon.c @@ -409,11 +409,8 @@ static ssize_t vfd_write(struct file *file, const char __user *buf, } data_buf = memdup_user(buf, n_bytes); - if (IS_ERR(data_buf)) { - retval = PTR_ERR(data_buf); - data_buf = NULL; - goto exit; - } + if (IS_ERR(data_buf)) + return PTR_ERR(data_buf); memcpy(context->tx.data_buf, data_buf, n_bytes); diff --git a/drivers/staging/media/lirc/lirc_sasem.c b/drivers/staging/media/lirc/lirc_sasem.c index f2dca69..ba1ee86 100644 --- a/drivers/staging/media/lirc/lirc_sasem.c +++ b/drivers/staging/media/lirc/lirc_sasem.c @@ -387,11 +387,8 @@ static ssize_t vfd_write(struct file *file, const char __user *buf, } data_buf = memdup_user(buf, n_bytes); - if (IS_ERR(data_buf)) { - retval = PTR_ERR(data_buf); - data_buf = NULL; - goto exit; - } + if (IS_ERR(data_buf)) + return PTR_ERR(data_buf); memcpy(context->tx.data_buf, data_buf, n_bytes); -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 3/3] staging: greybus: use preferred kernel type u32
On Tue, Sep 20, 2016 at 3:29 PM, Greg KH wrote: > On Tue, Sep 20, 2016 at 09:47:31AM +0900, Chaehyun Lim wrote: >> As suggested by checkpatch.pl: >> >> CHECK: Prefer kernel type 'u32' over 'uint32_t' >> >> Signed-off-by: Chaehyun Lim >> --- >> drivers/staging/greybus/audio_codec.c | 6 ++-- >> drivers/staging/greybus/audio_codec.h | 10 +++ >> drivers/staging/greybus/audio_gb.c| 4 +-- >> drivers/staging/greybus/sdio.c| 2 +- >> drivers/staging/greybus/tools/loopback_test.c | 40 >> +-- >> 5 files changed, 31 insertions(+), 31 deletions(-) > > Oops, I applied this but will drop it as loopback_test is a userspace > tool, and I don't think that u32 will work there. Did you test build > this? > > thanks, > > greg k-h I'm sorry that I didn't notice it's not compiled when doing build this module thanks chaehyun lim ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: Staging: Media: Lirc - Fix possible ERR_PTR() dereferencing.
On Tue, Sep 20, 2016 at 12:21:21PM +0530, Shailendra Verma wrote: > This is of course wrong to call kfree() if memdup_user() fails, > no memory was allocated and the error in the error-valued pointer > should be returned. > > Reviewed-by: Ravikant Sharma > Signed-off-by: Shailendra Verma Calling kfree(NULL) is fine so there is no bug in the original code. Also this patch creates a new locking bug. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
On Tue, Sep 20, 2016 at 08:47:02AM +0200, Greg Kroah-Hartman wrote: > On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > > Being over zealous in removing unused EXPORT_SYMBOLs two functions > > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > > was done when porting to the upstream client. > > How did our build testing not catch this? What needs these exports? Is > it any in-kernel code? > > confused, It did catch it... James, every patch has to be buildable (bisectable) so the original patch is never going to be merged. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 2/2] staging: iio: isl29018: fix alignment of function arguments
Address warning from checkpatch: CHECK: Alignment should match open parenthesis Signed-off-by: Brian Masney --- drivers/staging/iio/light/isl29018.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/staging/iio/light/isl29018.c b/drivers/staging/iio/light/isl29018.c index ea4d7f1..4401451 100644 --- a/drivers/staging/iio/light/isl29018.c +++ b/drivers/staging/iio/light/isl29018.c @@ -607,8 +607,8 @@ static int isl29018_chip_init(struct isl29018_chip *chip) return status; } - status = isl29018_set_integration_time(chip, - isl29018_int_utimes[chip->type][chip->int_time]); + status = isl29018_set_integration_time( + chip, isl29018_int_utimes[chip->type][chip->int_time]); if (status < 0) { dev_err(dev, "Init of isl29018 fails\n"); return status; -- 2.7.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/2] staging: iio: isl29018: remove the FSF's mailing address
Address warning from checkpatch: CHECK: Do not include the paragraph about writing to the Free Software Foundation's mailing address from the sample GPL notice. The FSF has changed addresses in the past, and may do so again. Linux already includes a copy of the GPL. Signed-off-by: Brian Masney --- drivers/staging/iio/light/isl29018.c | 4 1 file changed, 4 deletions(-) diff --git a/drivers/staging/iio/light/isl29018.c b/drivers/staging/iio/light/isl29018.c index 76d9f74..ea4d7f1 100644 --- a/drivers/staging/iio/light/isl29018.c +++ b/drivers/staging/iio/light/isl29018.c @@ -15,10 +15,6 @@ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ #include -- 2.7.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 2/2] staging: iio: isl29018: fix alignment of function arguments
On Tue, Sep 20, 2016 at 05:38:57AM -0400, Brian Masney wrote: > Address warning from checkpatch: > > CHECK: Alignment should match open parenthesis > > Signed-off-by: Brian Masney > --- > drivers/staging/iio/light/isl29018.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/staging/iio/light/isl29018.c > b/drivers/staging/iio/light/isl29018.c > index ea4d7f1..4401451 100644 > --- a/drivers/staging/iio/light/isl29018.c > +++ b/drivers/staging/iio/light/isl29018.c > @@ -607,8 +607,8 @@ static int isl29018_chip_init(struct isl29018_chip *chip) > return status; > } > > - status = isl29018_set_integration_time(chip, > - isl29018_int_utimes[chip->type][chip->int_time]); > + status = isl29018_set_integration_time( > + chip, isl29018_int_utimes[chip->type][chip->int_time]); Congrats on finding a hack to silence checkpatch but this doesn't really improve the code at all... It's ok to ignore checkpatch.pl. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
On Tue, Sep 20, 2016 at 11:52:19AM +0300, Dan Carpenter wrote: > On Tue, Sep 20, 2016 at 08:47:02AM +0200, Greg Kroah-Hartman wrote: > > On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > > > Being over zealous in removing unused EXPORT_SYMBOLs two functions > > > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > > > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > > > was done when porting to the upstream client. > > > > How did our build testing not catch this? What needs these exports? Is > > it any in-kernel code? > > > > confused, > > It did catch it... It did? Works here for me, and I didn't see an error report anywhere... > James, every patch has to be buildable (bisectable) so the original > patch is never going to be merged. What is the "original" patch here? totally confused, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
On Tue, Sep 20, 2016 at 01:05:00PM +0200, Greg Kroah-Hartman wrote: > On Tue, Sep 20, 2016 at 11:52:19AM +0300, Dan Carpenter wrote: > > On Tue, Sep 20, 2016 at 08:47:02AM +0200, Greg Kroah-Hartman wrote: > > > On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > > > > Being over zealous in removing unused EXPORT_SYMBOLs two functions > > > > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > > > > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > > > > was done when porting to the upstream client. > > > > > > How did our build testing not catch this? What needs these exports? Is > > > it any in-kernel code? > > > > > > confused, > > > > It did catch it... > > It did? Works here for me, and I didn't see an error report anywhere... > > > James, every patch has to be buildable (bisectable) so the original > > patch is never going to be merged. > > What is the "original" patch here? > [PATCH 112/124] staging: lustre: ptlrpc: remove unnecessary EXPORT_SYMBOL kbuild responded to the email that it broke compilation on s360 but I don't think the breakage is arch specific? regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > Being over zealous in removing unused EXPORT_SYMBOLs two functions > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > was done when porting to the upstream client. > > Signed-off-by: James Simmons > Reviewed-on: http://review.whamcloud.com/14545 > Reviewed-on: http://review.whamcloud.com/15159 > Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6486 > Reviewed-by: Dmitry Eremin > Reviewed-by: Bob Glossman > Reviewed-by: John L. Hammond > Reviewed-by: Oleg Drokin > Signed-off-by: James Simmons > --- > .../staging/lustre/lustre/ptlrpc/pack_generic.c|2 ++ > 1 files changed, 2 insertions(+), 0 deletions(-) > > diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > index 1349bf6..8717685 100644 > --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > @@ -1861,6 +1861,7 @@ void lustre_swab_lmv_mds_md(union lmv_mds_md *lmm) > break; > } > } > +EXPORT_SYMBOL(lustre_swab_lmv_mds_md); I don't see anyone else using this symbol, in fact, it could now be marked static. So why export it? > void lustre_swab_lmv_user_md(struct lmv_user_md *lum) > { > @@ -1914,6 +1915,7 @@ void lustre_swab_lov_mds_md(struct lov_mds_md *lmm) > __swab16s(&lmm->lmm_stripe_count); > __swab16s(&lmm->lmm_layout_gen); > } > +EXPORT_SYMBOL(lustre_swab_lov_mds_md); This is used by other files (it's listed twice in lustre_idl.h...), so it might need to be exported, but why am I not seeing a build error without this change? confused, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
On Tue, Sep 20, 2016 at 02:16:12PM +0300, Dan Carpenter wrote: > On Tue, Sep 20, 2016 at 01:05:00PM +0200, Greg Kroah-Hartman wrote: > > On Tue, Sep 20, 2016 at 11:52:19AM +0300, Dan Carpenter wrote: > > > On Tue, Sep 20, 2016 at 08:47:02AM +0200, Greg Kroah-Hartman wrote: > > > > On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > > > > > Being over zealous in removing unused EXPORT_SYMBOLs two functions > > > > > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > > > > > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > > > > > was done when porting to the upstream client. > > > > > > > > How did our build testing not catch this? What needs these exports? Is > > > > it any in-kernel code? > > > > > > > > confused, > > > > > > It did catch it... > > > > It did? Works here for me, and I didn't see an error report anywhere... > > > > > James, every patch has to be buildable (bisectable) so the original > > > patch is never going to be merged. > > > > What is the "original" patch here? > > > > [PATCH 112/124] staging: lustre: ptlrpc: remove unnecessary EXPORT_SYMBOL > > kbuild responded to the email that it broke compilation on s360 but I > don't think the breakage is arch specific? Crap, I thought that was some other kbuild failure, my fault for ignoring that. Ok, I'll take half of this patch, if it gets resent... thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: ks7010: clean function declaration in ks_hostif.c up
On Sun, Sep 18, 2016 at 07:07:50PM +0800, Baoyou Xie wrote: > We get 1 warning when building kernel with W=1: > drivers/staging/ks7010/ks_wlan_net.c:3392:6: warning: no previous prototype > for 'send_packet_complete' [-Wmissing-prototypes] > > In fact, this function is declared in > drivers/staging/ks7010/ks_hostif.c, but should be > declared in a header file. thus can be recognized in other file. > > So this patch moves the declaration into > drivers/staging/ks7010/ks_wlan.h. > > Signed-off-by: Baoyou Xie You are sending me multiple patches for the same driver, yet no ordering, so these don't apply for me at all. Please fix this up and resend, I've dropped all of the ones from you for this driver now. greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 01/11] staging: most: hdm-dim2: fix channel configuration
On Fri, Sep 16, 2016 at 02:44:37PM +0300, Dan Carpenter wrote: > On Thu, Sep 15, 2016 at 04:19:03PM +0200, Christian Gromm wrote: > > From: Andrey Shvetsov > > > > The DIM2 HDM checks the parameters passed to the function > > configure_channel() and adapts the buffer sizes of the configuration > > according to the hardware limitation. This patch is needed to init > > the HAL layer with the correct values. > > > > Correct values are good, but what are the user visible effects of this > bug? I assume it's memory corruption. How is it triggered? Are there > security implications? > Independent of the patch in the case where the user space configures the channel with the buffer size that is consistent to the rest of the channel parameters, the function configure_channel just returns 0, otherwise the HDM adapts the buffer size to the next apropriate smaller value. The corrected value is visible in the sysfs. This patch does not fix/bring any security issues. The MBOs in the case where the function configure_channel returns 0 will be allocated with the appropriate size independent of the patch. The enqueue path of the DIM2 HAL checks the size of the buffer to prevent any corruptions independent of the patch. The user visible effect of the patch is the expected behavior of the HDM where the HDM helps to find out the correct buffer size according to the complex rules of the INIC interfaces. regards, andrey ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
> > On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > > > Being over zealous in removing unused EXPORT_SYMBOLs two functions > > > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > > > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > > > was done when porting to the upstream client. > > > > How did our build testing not catch this? What needs these exports? Is > > it any in-kernel code? > > > > confused, > > It did catch it... James, every patch has to be buildable (bisectable) > so the original patch is never going to be merged. We missed it original as well due to the fact it showed up on only specific platforms. I have no idea why that is. The majority of the time it works. BTW is there a way to run kbuild bot on a patch set before submission to avoid these corner cases. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [lustre-devel] [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
> > On Tue, Sep 20, 2016 at 11:52:19AM +0300, Dan Carpenter wrote: > > > On Tue, Sep 20, 2016 at 08:47:02AM +0200, Greg Kroah-Hartman wrote: > > > > On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > > > > > Being over zealous in removing unused EXPORT_SYMBOLs two functions > > > > > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > > > > > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > > > > > was done when porting to the upstream client. > > > > > > > > How did our build testing not catch this? What needs these exports? Is > > > > it any in-kernel code? > > > > > > > > confused, > > > > > > It did catch it... > > > > It did? Works here for me, and I didn't see an error report anywhere... > > > > > James, every patch has to be buildable (bisectable) so the original > > > patch is never going to be merged. > > > > What is the "original" patch here? > > > > [PATCH 112/124] staging: lustre: ptlrpc: remove unnecessary EXPORT_SYMBOL > > kbuild responded to the email that it broke compilation on s360 but I > don't think the breakage is arch specific? But it is. The breakage appears on only a subset of platforms. All the patches I sent are tested on a real file system setup using our special test suite. This was done on x86 hardware where the problem doesn't show up. I guess I need to ask work for a non-x86 platform to test with :-) ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/4] staging: unisys: visornic: remove prototypes
Remove unneeded prototypes from visornic_main.c Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/visornic/visornic_main.c | 41 ++--- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 49ee747..75d67f7 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -36,13 +36,6 @@ #define MAX_BUF 163840 #define NAPI_WEIGHT 64 -static int visornic_probe(struct visor_device *dev); -static void visornic_remove(struct visor_device *dev); -static int visornic_pause(struct visor_device *dev, - visorbus_state_complete_func complete_func); -static int visornic_resume(struct visor_device *dev, - visorbus_state_complete_func complete_func); - /* DEBUGFS declarations */ static ssize_t info_debugfs_read(struct file *file, char __user *buf, size_t len, loff_t *offset); @@ -75,23 +68,6 @@ MODULE_DEVICE_TABLE(visorbus, visornic_channel_types); */ MODULE_ALIAS("visorbus:" SPAR_VNIC_CHANNEL_PROTOCOL_UUID_STR); -/* This is used to tell the visor bus driver which types of visor devices - * we support, and what functions to call when a visor device that we support - * is attached or removed. - */ -static struct visor_driver visornic_driver = { - .name = "visornic", - .version = "1.0.0.0", - .vertag = NULL, - .owner = THIS_MODULE, - .channel_types = visornic_channel_types, - .probe = visornic_probe, - .remove = visornic_remove, - .pause = visornic_pause, - .resume = visornic_resume, - .channel_interrupt = NULL, -}; - struct chanstat { unsigned long got_rcv; unsigned long got_enbdisack; @@ -2059,6 +2035,23 @@ static int visornic_resume(struct visor_device *dev, return 0; } +/* This is used to tell the visor bus driver which types of visor devices + * we support, and what functions to call when a visor device that we support + * is attached or removed. + */ +static struct visor_driver visornic_driver = { + .name = "visornic", + .version = "1.0.0.0", + .vertag = NULL, + .owner = THIS_MODULE, + .channel_types = visornic_channel_types, + .probe = visornic_probe, + .remove = visornic_remove, + .pause = visornic_pause, + .resume = visornic_resume, + .channel_interrupt = NULL, +}; + /** * visornic_init - Init function * -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 3/4] staging: unisys: visornic: remove visornic_poll prototype
Remove visornic_poll prototype, because it is not needed. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/visornic/visornic_main.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index beb1cf2..183d2ec 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -141,7 +141,6 @@ struct visornic_devdata { struct uiscmdrsp cmdrsp[SIZEOF_CMDRSP]; }; -static int visornic_poll(struct napi_struct *napi, int budget); static void poll_for_irq(unsigned long v); /** -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 4/4] staging: unisys: visornic: remove poll_for_irq prototype
Remove poll_for_irq prototype not needed. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/visornic/visornic_main.c | 2 -- 1 file changed, 2 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 183d2ec..6b206be 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -141,8 +141,6 @@ struct visornic_devdata { struct uiscmdrsp cmdrsp[SIZEOF_CMDRSP]; }; -static void poll_for_irq(unsigned long v); - /** * visor_copy_fragsinfo_from_skb( * @skb_in: skbuff that we are pulling the frags from -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 2/4] staging: unisys: visornic: remove visornic debugfs protoyptes
Remove visornic debugfs prototypes, they are not needed. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/visornic/visornic_main.c | 23 +-- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/drivers/staging/unisys/visornic/visornic_main.c b/drivers/staging/unisys/visornic/visornic_main.c index 75d67f7..beb1cf2 100644 --- a/drivers/staging/unisys/visornic/visornic_main.c +++ b/drivers/staging/unisys/visornic/visornic_main.c @@ -36,20 +36,6 @@ #define MAX_BUF 163840 #define NAPI_WEIGHT 64 -/* DEBUGFS declarations */ -static ssize_t info_debugfs_read(struct file *file, char __user *buf, -size_t len, loff_t *offset); -static ssize_t enable_ints_write(struct file *file, const char __user *buf, -size_t len, loff_t *ppos); -static struct dentry *visornic_debugfs_dir; -static const struct file_operations debugfs_info_fops = { - .read = info_debugfs_read, -}; - -static const struct file_operations debugfs_enable_ints_fops = { - .write = enable_ints_write, -}; - /* GUIDS for director channel type supported by this driver. */ static struct visor_channeltype_descriptor visornic_channel_types[] = { /* Note that the only channel type we expect to be reported by the @@ -263,6 +249,10 @@ static ssize_t enable_ints_write(struct file *file, return count; } +static const struct file_operations debugfs_enable_ints_fops = { + .write = enable_ints_write, +}; + /** * visornic_serverdown_complete - IOPART went down, pause device * @work: Work queue it was scheduled on @@ -1496,6 +1486,11 @@ static ssize_t info_debugfs_read(struct file *file, char __user *buf, return bytes_read; } +static struct dentry *visornic_debugfs_dir; +static const struct file_operations debugfs_info_fops = { + .read = info_debugfs_read, +}; + /** * send_rcv_posts_if_needed * @devdata: visornic device -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 0/4] staging: unisys: visornic: remove prototypes
This patchset removes unneeded prototypes from the visornic driver. Some code was shuffled around to avoid needing the prototypes. David Kershner (4): staging: unisys: visornic: remove prototypes staging: unisys: visornic: remove visornic debugfs protoyptes staging: unisys: visornic: remove visornic_poll prototype staging: unisys: visornic: remove poll_for_irq prototype drivers/staging/unisys/visornic/visornic_main.c | 67 ++--- 1 file changed, 26 insertions(+), 41 deletions(-) -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: lustre: ptlrpc: re-export lustre_swab_[lmv|lov]_mds_md
> On Mon, Sep 19, 2016 at 01:27:05PM -0400, James Simmons wrote: > > Being over zealous in removing unused EXPORT_SYMBOLs two functions > > lustre_swab_[lmv|lov]_mds_md exports were removed. They need to be > > exported so this patch restores those EXPORT_SYMBOLS. Same mistake > > was done when porting to the upstream client. > > > > Signed-off-by: James Simmons > > Reviewed-on: http://review.whamcloud.com/14545 > > Reviewed-on: http://review.whamcloud.com/15159 > > Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6486 > > Reviewed-by: Dmitry Eremin > > Reviewed-by: Bob Glossman > > Reviewed-by: John L. Hammond > > Reviewed-by: Oleg Drokin > > Signed-off-by: James Simmons > > --- > > .../staging/lustre/lustre/ptlrpc/pack_generic.c|2 ++ > > 1 files changed, 2 insertions(+), 0 deletions(-) > > > > diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > > b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > > index 1349bf6..8717685 100644 > > --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > > +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c > > @@ -1861,6 +1861,7 @@ void lustre_swab_lmv_mds_md(union lmv_mds_md *lmm) > > break; > > } > > } > > +EXPORT_SYMBOL(lustre_swab_lmv_mds_md); > > I don't see anyone else using this symbol, in fact, it could now be > marked static. So why export it? Too soon to export it. A patch is coming in which the llite layer will use it. I will drop it and make a note to make sure for the upcoming patch that I export lustre_swab_lmv_mds_md. > > void lustre_swab_lmv_user_md(struct lmv_user_md *lum) > > { > > @@ -1914,6 +1915,7 @@ void lustre_swab_lov_mds_md(struct lov_mds_md *lmm) > > __swab16s(&lmm->lmm_stripe_count); > > __swab16s(&lmm->lmm_layout_gen); > > } > > +EXPORT_SYMBOL(lustre_swab_lov_mds_md); > > This is used by other files (it's listed twice in lustre_idl.h...), so > it might need to be exported, but why am I not seeing a build error > without this change? The function lustre_swab_lov_mds_md is also used in lov_pack.c so it needs to be exported. You shouldn't be able to load some of the lustre modules but it does on x86. I will send a new patch to fix this but a note about this breakage should be kept so someone with an indepth understanding of the module system can track down what is going wrong. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH] staging: unisys: visorhba: remove prototypes for visorhba_main.c
Remove not needed prototypes in visorhba. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/visorhba/visorhba_main.c | 50 +++-- 1 file changed, 21 insertions(+), 29 deletions(-) diff --git a/drivers/staging/unisys/visorhba/visorhba_main.c b/drivers/staging/unisys/visorhba/visorhba_main.c index 120ba20..5ab5c3f 100644 --- a/drivers/staging/unisys/visorhba/visorhba_main.c +++ b/drivers/staging/unisys/visorhba/visorhba_main.c @@ -36,21 +36,6 @@ #define MAX_PENDING_REQUESTS (MIN_NUMSIGNALS * 2) #define VISORHBA_ERROR_COUNT 30 -static int visorhba_queue_command_lck(struct scsi_cmnd *scsicmd, - void (*visorhba_cmnd_done) - (struct scsi_cmnd *)); -#ifdef DEF_SCSI_QCMD -static DEF_SCSI_QCMD(visorhba_queue_command) -#else -#define visorhba_queue_command visorhba_queue_command_lck -#endif -static int visorhba_probe(struct visor_device *dev); -static void visorhba_remove(struct visor_device *dev); -static int visorhba_pause(struct visor_device *dev, - visorbus_state_complete_func complete_func); -static int visorhba_resume(struct visor_device *dev, - visorbus_state_complete_func complete_func); - static struct dentry *visorhba_debugfs_dir; /* GUIDS for HBA channel type supported by this driver */ @@ -62,20 +47,6 @@ static struct visor_channeltype_descriptor visorhba_channel_types[] = { { NULL_UUID_LE, NULL } }; -/* This is used to tell the visor bus driver which types of visor devices - * we support, and what functions to call when a visor device that we support - * is attached or removed. - */ -static struct visor_driver visorhba_driver = { - .name = "visorhba", - .owner = THIS_MODULE, - .channel_types = visorhba_channel_types, - .probe = visorhba_probe, - .remove = visorhba_remove, - .pause = visorhba_pause, - .resume = visorhba_resume, - .channel_interrupt = NULL, -}; MODULE_DEVICE_TABLE(visorbus, visorhba_channel_types); MODULE_ALIAS("visorbus:" SPAR_VHBA_CHANNEL_PROTOCOL_UUID_STR); @@ -580,6 +551,12 @@ err_del_scsipending_ent: return SCSI_MLQUEUE_DEVICE_BUSY; } +#ifdef DEF_SCSI_QCMD +static DEF_SCSI_QCMD(visorhba_queue_command) +#else +#define visorhba_queue_command visorhba_queue_command_lck +#endif + /** * visorhba_slave_alloc - called when new disk is discovered * @scsidev: New disk @@ -1186,6 +1163,21 @@ static void visorhba_remove(struct visor_device *dev) debugfs_remove_recursive(devdata->debugfs_dir); } +/* This is used to tell the visor bus driver which types of visor devices + * we support, and what functions to call when a visor device that we support + * is attached or removed. + */ +static struct visor_driver visorhba_driver = { + .name = "visorhba", + .owner = THIS_MODULE, + .channel_types = visorhba_channel_types, + .probe = visorhba_probe, + .remove = visorhba_remove, + .pause = visorhba_pause, + .resume = visorhba_resume, + .channel_interrupt = NULL, +}; + /** * visorhba_init - driver init routine * -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v2] staging: lustre: ptlrpc: re-export lustre_swab_lov_mds_md
Being over zealous in removing unused EXPORT_SYMBOLs the function lustre_swab_lov_mds_md exports were removed. They need to be exported so this patch restores those EXPORT_SYMBOLS. Same mistake was done when porting to the upstream client. v2 Remove exporting lustre_swab_lmv_mds_md since that is not needed just yet. Signed-off-by: James Simmons Reviewed-on: http://review.whamcloud.com/14545 Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-6486 Reviewed-by: Dmitry Eremin Reviewed-by: John L. Hammond Reviewed-by: Oleg Drokin Signed-off-by: James Simmons --- .../staging/lustre/lustre/ptlrpc/pack_generic.c|1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c index 1349bf6..e24d8e1 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c +++ b/drivers/staging/lustre/lustre/ptlrpc/pack_generic.c @@ -1914,6 +1914,7 @@ void lustre_swab_lov_mds_md(struct lov_mds_md *lmm) __swab16s(&lmm->lmm_stripe_count); __swab16s(&lmm->lmm_layout_gen); } +EXPORT_SYMBOL(lustre_swab_lov_mds_md); void lustre_swab_lov_user_md_objects(struct lov_user_ost_data *lod, int stripe_count) -- 1.7.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 2/4] staging: unisys: include: remove unused spar_channel_client_acquire_os
The function spar_channel_client_acquire_os is not being used so remove it. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/include/channel.h | 104 --- 1 file changed, 104 deletions(-) diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index e42f46c..7de9e2b 100644 --- a/drivers/staging/unisys/include/channel.h +++ b/drivers/staging/unisys/include/channel.h @@ -132,22 +132,6 @@ ULTRA_CHANNELCLI_STRING(u32 state) /* throttling invalid boot channel statetransition error due to busy channel */ #define ULTRA_CLIERRORBOOT_THROTTLEMSG_BUSY0x04 -/* Values for ULTRA_CHANNEL_PROTOCOL.CliErrorOS: */ -/* throttling invalid guest OS channel statetransition error due to - * client disabled - */ -#define ULTRA_CLIERROROS_THROTTLEMSG_DISABLED 0x01 - -/* throttling invalid guest OS channel statetransition error due to - * client not attached - */ -#define ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED 0x02 - -/* throttling invalid guest OS channel statetransition error due to - * busy channel - */ -#define ULTRA_CLIERROROS_THROTTLEMSG_BUSY 0x04 - /* Values for ULTRA_CHANNEL_PROTOCOL.Features: This define exists so * that windows guest can look at the FeatureFlags in the io channel, * and configure the windows driver to use interrupts or not based on @@ -347,94 +331,6 @@ static inline int spar_check_channel_server(uuid_le typeuuid, char *name, return 1; } -static inline int -spar_channel_client_acquire_os(void __iomem *ch, u8 *id) -{ - struct channel_header __iomem *hdr = ch; - - if (readl(&hdr->cli_state_os) == CHANNELCLI_DISABLED) { - if ((readb(&hdr->cli_error_os) -& ULTRA_CLIERROROS_THROTTLEMSG_DISABLED) == 0) { - /* we are NOT throttling this message */ - writeb(readb(&hdr->cli_error_os) | - ULTRA_CLIERROROS_THROTTLEMSG_DISABLED, - &hdr->cli_error_os); - /* throttle until acquire successful */ - - pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client DISABLED\n", - id); - } - return 0; - } - if ((readl(&hdr->cli_state_os) != CHANNELCLI_OWNED) && - (readl(&hdr->cli_state_boot) == CHANNELCLI_DISABLED)) { - /* Our competitor is DISABLED, so we can transition to OWNED */ - pr_info("%s Channel StateTransition (%s) %s(%d)-->%s(%d)\n", - id, "cli_state_os", - ULTRA_CHANNELCLI_STRING(readl(&hdr->cli_state_os)), - readl(&hdr->cli_state_os), - ULTRA_CHANNELCLI_STRING(CHANNELCLI_OWNED), - CHANNELCLI_OWNED); - writel(CHANNELCLI_OWNED, &hdr->cli_state_os); - mb(); /* required for channel synch */ - } - if (readl(&hdr->cli_state_os) == CHANNELCLI_OWNED) { - if (readb(&hdr->cli_error_os)) { - /* we are in an error msg throttling state; -* come out of it -*/ - pr_info("%s Channel OS client acquire now successful\n", - id); - writeb(0, &hdr->cli_error_os); - } - return 1; - } - - /* We have to do it the "hard way". We transition to BUSY, -* and can use the channel iff our competitor has not also -* transitioned to BUSY. -*/ - if (readl(&hdr->cli_state_os) != CHANNELCLI_ATTACHED) { - if ((readb(&hdr->cli_error_os) -& ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED) == 0) { - /* we are NOT throttling this message */ - writeb(readb(&hdr->cli_error_os) | - ULTRA_CLIERROROS_THROTTLEMSG_NOTATTACHED, - &hdr->cli_error_os); - /* throttle until acquire successful */ - pr_info("%s Channel StateTransition INVALID! - acquire failed because OS client NOT ATTACHED (state=%s(%d))\n", - id, ULTRA_CHANNELCLI_STRING( - readl(&hdr->cli_state_os)), - readl(&hdr->cli_state_os)); - } - return 0; - } - writel(CHANNELCLI_BUSY, &hdr->cli_state_os); - mb(); /* required for channel synch */ - if (readl(&hdr->cli_state_boot) == CHANNELCLI_BUSY) { - if ((readb(&hdr->cli_error_os) -& ULTRA_CLIERROROS_THROTTLEMSG_BUSY) == 0) { - /* we are NOT throttling this message */ - writeb(readb(&hdr->cli_error_os) | -
[PATCH 1/4] staging: unisys: include: remove unused function pathname_last_n_nodes
The function pathname_last_n_nodes is not used, get rid of it. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/include/channel.h | 32 1 file changed, 32 deletions(-) diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index ff86f7a..e42f46c 100644 --- a/drivers/staging/unisys/include/channel.h +++ b/drivers/staging/unisys/include/channel.h @@ -347,38 +347,6 @@ static inline int spar_check_channel_server(uuid_le typeuuid, char *name, return 1; } -/* Given a file pathname (with '/' or '\' separating directory nodes), - * returns a pointer to the beginning of a node within that pathname such - * that the number of nodes from that pointer to the end of the string is - * NOT more than . Note that if the pathname has less than nodes - * in it, the return pointer will be to the beginning of the string. - */ -static inline u8 * -pathname_last_n_nodes(u8 *s, unsigned int n) -{ - u8 *p = s; - unsigned int node_count = 0; - - while (*p != '\0') { - if ((*p == '/') || (*p == '\\')) - node_count++; - p++; - } - if (node_count <= n) - return s; - while (n > 0) { - p--; - if (p == s) - break; /* should never happen, unless someone -* is changing the string while we are -* looking at it!! -*/ - if ((*p == '/') || (*p == '\\')) - n--; - } - return p + 1; -} - static inline int spar_channel_client_acquire_os(void __iomem *ch, u8 *id) { -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 3/4] staging: unisys: include: remove unused spar_channel_client_release_os
The function spar_channel_client_release_os is not being used so remove it. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/include/channel.h | 22 -- 1 file changed, 22 deletions(-) diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index 7de9e2b..ba8bfdc 100644 --- a/drivers/staging/unisys/include/channel.h +++ b/drivers/staging/unisys/include/channel.h @@ -331,28 +331,6 @@ static inline int spar_check_channel_server(uuid_le typeuuid, char *name, return 1; } -static inline void -spar_channel_client_release_os(void __iomem *ch, u8 *id) -{ - struct channel_header __iomem *hdr = ch; - - if (readb(&hdr->cli_error_os)) { - /* we are in an error msg throttling state; come out of it */ - pr_info("%s Channel OS client error state cleared\n", id); - writeb(0, &hdr->cli_error_os); - } - if (readl(&hdr->cli_state_os) == CHANNELCLI_OWNED) - return; - if (readl(&hdr->cli_state_os) != CHANNELCLI_BUSY) { - pr_info("%s Channel StateTransition INVALID! - release failed because OS client NOT BUSY (state=%s(%d))\n", - id, ULTRA_CHANNELCLI_STRING( - readl(&hdr->cli_state_os)), - readl(&hdr->cli_state_os)); - /* return; */ - } - writel(CHANNELCLI_ATTACHED, &hdr->cli_state_os); /* release busy */ -} - /* * Routine Description: * Tries to insert the prebuilt signal pointed to by pSignal into the nth -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 4/4] staging: unisys: include: remove unused ULTRA_CHANNELCLI_STRING
The inline ULTRA_CHANNELCLI_STRING is not being used so remove it. Signed-off-by: David Kershner Reviewed-by: Tim Sell --- drivers/staging/unisys/include/channel.h | 22 -- 1 file changed, 22 deletions(-) diff --git a/drivers/staging/unisys/include/channel.h b/drivers/staging/unisys/include/channel.h index ba8bfdc..259ef64 100644 --- a/drivers/staging/unisys/include/channel.h +++ b/drivers/staging/unisys/include/channel.h @@ -75,28 +75,6 @@ enum channel_clientstate { /* access channel anytime */ }; -static inline const u8 * -ULTRA_CHANNELCLI_STRING(u32 state) -{ - switch (state) { - case CHANNELCLI_DETACHED: - return (const u8 *)("DETACHED"); - case CHANNELCLI_DISABLED: - return (const u8 *)("DISABLED"); - case CHANNELCLI_ATTACHING: - return (const u8 *)("ATTACHING"); - case CHANNELCLI_ATTACHED: - return (const u8 *)("ATTACHED"); - case CHANNELCLI_BUSY: - return (const u8 *)("BUSY"); - case CHANNELCLI_OWNED: - return (const u8 *)("OWNED"); - default: - break; - } - return (const u8 *)("?"); -} - #define SPAR_CHANNEL_SERVER_READY(ch) \ (readl(&(ch)->srv_state) == CHANNELSRV_READY) -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 0/4] staging: unisys: include: remove unused functions
This patchset removes unused function from the include directories. David Kershner (4): staging: unisys: include: remove unused function pathname_last_n_nodes staging: unisys: include: remove unused spar_channel_client_acquire_os staging: unisys: include: remove unused spar_channel_client_release_os staging: unisys: include: remove unused ULTRA_CHANNELCLI_STRING drivers/staging/unisys/include/channel.h | 180 --- 1 file changed, 180 deletions(-) -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel