Re: Anybody working on tidspbridge?
* Suman Anna [140708 11:40]: > Hi Peter, > > On 07/08/2014 09:36 AM, Greg KH wrote: > > On Tue, Jul 08, 2014 at 03:03:58PM +0200, Peter Meerwald wrote: > >> Hello, > >> > Given the total lack of response here, I suggest just deleting the > driver. No one has ever done the "real work" that is going to be > required to get this code out of staging. It has had build errors > causing it to not even be usable for some kernel versions with no one > noticing, so I doubt anyone cares about it anymore here. > >>> > >>> Cc'ing some more people who might be interested. If no one offers to > >>> work on the driver in the next couple of days, I'll send a patch to > >>> remove it. > >> > >> I'm using the driver (with kernel 3.7) and it works reasonably well for > >> me; removing it seems a bit harsh. > > > > Using it is different from being able to maintain the code and move it > > out of the staging tree. Also, 3.7 is really old and obsolete, not much > > we can do with that kernel version :) > > > > Are you able to work on the code and do the effort needed to get it out > > of the staging tree? If so, great, if not, we are going to have to > > delete it, sorry. > > I agree with Greg here. In fact, the current TODO does not do enough > justice to the amount of work required to make it even work on the > latest kernel. Most of the TIers who worked on this driver have moved on > as Kristina would have figured with her bounced emails. So I do suggest > that this driver be deleted from the kernel tree. If there are enough > number of folks using it (not sure how many are out there), it can be > worked on out-of-tree and brought back in a cleaner fashion rather than > keeping a broken stale driver in the kernel. I agree, not much has improved with this driver since it got added into staging except just compile fixes. Regards, Tony ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/2] staging: dgap: use kzalloc instead of kmalloc/memset
Signed-off-by: Daeseok Youn --- drivers/staging/dgap/dgap.c |6 ++ 1 files changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index da11dfb..8e3fd87 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -7307,11 +7307,9 @@ static struct cnode *dgap_newnode(int t) { struct cnode *n; - n = kmalloc(sizeof(struct cnode), GFP_KERNEL); - if (n) { - memset((char *)n, 0, sizeof(struct cnode)); + n = kzalloc(sizeof(struct cnode), GFP_KERNEL); + if (n) n->type = t; - } return n; } -- 1.7.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 2/2] staging: dgap: remove redundant NULL check in dgap_tty_init()
The brd is already checked by earlier function in dgap_init_one(). Signed-off-by: Daeseok Youn --- drivers/staging/dgap/dgap.c |3 --- 1 files changed, 0 insertions(+), 3 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index 8e3fd87..b60995e 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -1363,9 +1363,6 @@ static int dgap_tty_init(struct board_t *brd) struct cm_t __iomem *cm; int ret; - if (!brd) - return -EIO; - /* * Initialize board structure elements. */ -- 1.7.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 054/115] staging: ced1401: remove typedef for TRANSAREA
On 09/07/2014 01:01, Greg KH wrote: On Mon, Jun 30, 2014 at 12:00:46PM +0200, Luca Ellero wrote: Signed-off-by: Luca Ellero --- drivers/staging/ced1401/ced_ioc.c | 21 - drivers/staging/ced1401/usb1401.c |9 ++--- drivers/staging/ced1401/usb1401.h |6 +++--- 3 files changed, 21 insertions(+), 15 deletions(-) This patch fails to apply for some odd reason :( Which is why it is generally a bad idea to send huge series of patches all at once. So, I've applied your first 53, please go back, fix this up, and resend the rest that I did not apply. thanks, greg k-h Hi Greg, ok, I'll fix the remaining patches and resend them in the next days. Regards Luca Ellero ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v2 00/10] staging: rtl8723au: Fix USB macro functions
Greg KH writes: > On Tue, Jul 01, 2014 at 12:06:59PM +0200, jes.soren...@redhat.com wrote: >> From: Jes Sorensen >> >> Greg, >> >> Here is v2 of patch 08/10 "Sanitize USB read/write functions" it >> should fix the 'do not do DMA on the stack' issue with the original >> version. With this patch 09/10 is valid again. >> >> I didn't want to resend the full set again to reduce list noise, but >> if you prefer that, just let me know and I can do that. > > I think I got it right with this patch, thanks for the update. > > greg k-h At initial glance, it looks good to me! Thanks for handling this! Cheers, Jes ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v2] hyperv: Add netpoll support
In order to have at least a netconsole to debug kernel issues on Windows Azure this patch implements netpoll support. Sending packets is easy, netvsc_start_xmit() does already everything needed. Signed-off-by: Richard Weinberger --- drivers/net/hyperv/netvsc_drv.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 4fd71b7..45218d5 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -736,6 +736,14 @@ static int netvsc_set_mac_addr(struct net_device *ndev, void *p) return err; } +#ifdef CONFIG_NET_POLL_CONTROLLER +static void netvsc_poll_controller(struct net_device *net) +{ + /* As netvsc_start_xmit() works synchronous we don't have to + trigger anything here. */ + return; +} +#endif static const struct ethtool_ops ethtool_ops = { .get_drvinfo= netvsc_get_drvinfo, @@ -751,6 +759,9 @@ static const struct net_device_ops device_ops = { .ndo_validate_addr =eth_validate_addr, .ndo_set_mac_address = netvsc_set_mac_addr, .ndo_select_queue = netvsc_select_queue, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = netvsc_poll_controller, +#endif }; /* -- 2.0.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] hyperv: Add netpoll support
Am 09.07.2014 01:43, schrieb Francois Romieu: > Richard Weinberger : >> Am 09.07.2014 00:47, schrieb Francois Romieu: > [...] >>> What are you taking about ? netconsole does not need to receive. >> >> Isn't netconsole is only one user of netpoll ? > > Out of tree users are irrelevant. See netpoll related comments in > cd6362befe4cc7bf589a5236d2a780af2d47bcc9 Thanks lot for pointing this out! >> Of course netconsole needs only to transmit SKBs. >> But if you look at other ->ndo_poll_controller implementations >> you'll notice that they care also about receiving. > > It's just the long, illuminating history of netpoll :o) > > Some limited Rx netpoll support may be done but it needs more work > than was originally advertised. > >>> hyperv start_xmit handler almost does its own Tx completion as you have >>> noticed. The situation is imho close to a virtual device one as was veth >>> in bb446c19fefd7b4435adb12a9dd7666adc5b553a. >> >> Bad commit reference: bb446c19fefd7b4435adb12a9dd7666adc5b553a > > Sorry, it currently belongs to davem's net-next. Found it already. :) Thanks, //richard ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v2 1/4] staging: rtl8192u: Remove useless return statement in r819xU_phy.c
These patches look ok now. The only thing is that the changelogs are a little off. On Wed, Jul 09, 2014 at 11:34:17AM +0530, sanjeev sharma wrote: > From: sanjeev sharma Don't use the From header unless you are sending patches on behalf of someone else. It's better if you can configure your email client so you can send the patches from your @mentor.com address. It would be better if the names were capitalized. > > This is a patch to the r819xU_phy.c file that remove unneeded return > statements in code. Please line wrap the changelog at 72 characters (the same as email). Otherwise Greg sometimes fixes them manually... But the patches themselves are nice now. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host
On Tue, Jul 08, 2014 at 05:46:45PM -0700, K. Y. Srinivasan wrote: > + * In Hyper-V, each port/path/target maps to 1 scsi host adapter. Does it still? The STORVSC_FC_MAX_TARGETS define suggests otherwise. > - .cmd_per_lun = 1, > + .cmd_per_lun = 255, This looks like an unrelated change. > + /* max # of devices per target */ > + host->max_lun = STORVSC_FC_MAX_LUNS_PER_TARGET; > + /* max # of targets per channel */ > + host->max_id = STORVSC_FC_MAX_TARGETS; > + /* max # of channels */ > + host->max_channel = STORVSC_FC_MAX_CHANNELS - 1; I don't think these comments add any value.. Also any reason you use off by one defines for max_channel, but not the others? ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 2/8] Drivers: scsi: storvsc: Filter commands based on the storage protocol version
On Tue, Jul 08, 2014 at 05:46:46PM -0700, K. Y. Srinivasan wrote: > Going forward it is possible that some of the commands that are not currently > implemented will be implemented on future Windows hosts. Make command > filtering > depend on the host version. > + if (vmstor_current_major <= VMSTOR_WIN8_MAJOR) { > + /* > + * On legacy hosts filter unimplemented commands. > + */ > + if (!storvsc_scsi_cmd_ok(scmnd)) { > + scmnd->scsi_done(scmnd); > + return 0; > + } So post-Win8 versions don't need command filering as they can properly reject commands they don't understand? If that's the case please state it in the patch description. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 3/8] Drivers: scsi: storvsc: Fix a bug in handling VMBUS protocol version
> + if ((vmbus_proto_version == VERSION_WS2008) || > + (vmbus_proto_version == VERSION_WIN7)) { This has superflous braces and doesn't use proper Linux indentation. But I think simply using a switch here might be cleaner anyway. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
On Tue, Jul 08, 2014 at 05:46:48PM -0700, K. Y. Srinivasan wrote: > Host does not handle WRITE_SAME_16; filter this command out. This patch > is required to handle large devices (greater than 2 TB disks). Storvsc already sets the no_write_same flag, where is the command coming from? ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 5/8] Drivers: scsi: storvsc: Fix a bug in the handling of SRB status flags
Looks good, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 6/8] Drivers: scsi: storvsc: Implement an abort handler
On Tue, Jul 08, 2014 at 05:46:50PM -0700, K. Y. Srinivasan wrote: > Implement a simple abort handler. The host does not support "Abort"; just > ensure that all inflight I/Os have been accounted for. The abort handler should abort a single command, not wait for all of them. What issue do you see that this tries to address? ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 7/8] drivers: scsi: storvsc: Set srb_flags in all cases
On Tue, Jul 08, 2014 at 05:46:51PM -0700, K. Y. Srinivasan wrote: > Correctly set SRB flags for all valid I/O directions. Some IHV drivers on the > Windows host require this. What are IHV drivers? Otherwise looks fine, Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 8/8] drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure
On Tue, Jul 08, 2014 at 05:46:52PM -0700, K. Y. Srinivasan wrote: > --- a/drivers/scsi/storvsc_drv.c > +++ b/drivers/scsi/storvsc_drv.c > @@ -1023,6 +1023,13 @@ static void storvsc_handle_error(struct vmscsi_request > *vm_srb, > case ATA_12: > set_host_byte(scmnd, DID_PASSTHROUGH); > break; > + /* > + * On Some Windows hosts TEST_UNIT_READY command can return > + * SRB_STATUS_ERROR, let the upper level code deal with it > + * based on the sense information. > + */ > + case TEST_UNIT_READY: > + break; Don't we need to set an error in the command for the error handler to take action? Or is this propagated elsewhere? ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/2] staging: silicom: checkpatch fixes
The patch does too many things, break it up into one type of fix per patch. On Tue, Jul 01, 2014 at 02:24:36PM +0200, Davide Gianforte wrote: > Chechpatch.pl cleanup > > There are still some warnings, most of them are lines over 80 chars > (mainly a semicolon or closing parenthesis). > > Where not specified, I defaulted printk with no log level into pr_debug No. You can't just use pr_debug for everything. Also some of them are not whole line prints so the pr_debug() will put extra info in the middle of the lines. Write a hello_world.ko kernel module and play with the printk until you understand what I mean. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH V2] staging: gdm72xx: move T_CAPABILITY definitions to hci.h
On Wed, Jul 02, 2014 at 11:18:07AM +0100, Michalis Pappas wrote: > Signed-off-by: Michalis Pappas > --- > drivers/staging/gdm72xx/gdm_wimax.c | 11 --- > drivers/staging/gdm72xx/hci.h | 6 ++ > 2 files changed, 10 insertions(+), 7 deletions(-) > > diff --git a/drivers/staging/gdm72xx/gdm_wimax.c > b/drivers/staging/gdm72xx/gdm_wimax.c > index 4148013..50b7bf0 100644 > --- a/drivers/staging/gdm72xx/gdm_wimax.c > +++ b/drivers/staging/gdm72xx/gdm_wimax.c > @@ -609,10 +609,7 @@ static void gdm_wimax_prepare_device(struct net_device > *dev) > u16 len = 0; > u32 val = 0; > > - #define BIT_MULTI_CS0 > - #define BIT_WIMAX 1 > - #define BIT_QOS 2 > - #define BIT_AGGREGATION 3 > + > > /* GetInformation mac address */ > len = 0; > @@ -621,12 +618,12 @@ static void gdm_wimax_prepare_device(struct net_device > *dev) > hci->length = H2B(len); > gdm_wimax_send(nic, hci, HCI_HEADER_SIZE+len); > > - val = (1< + val = (1 << T_CAPABILITY_WIMAX) | (1 << T_CAPABILITY_MULTI_CS); Double shifting here... It should just be: val = T_CAPABILITY_WIMAX | T_CAPABILITY_MULTI_CS; This bug feels like something a static checker should find. Let me test that. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH v2 1/4] staging: rtl8192u: Remove useless return statement in r819xU_phy.c
Thanks Dan, -Original Message- From: Dan Carpenter [mailto:dan.carpen...@oracle.com] Sent: Wednesday, July 09, 2014 1:40 PM To: sanjeev sharma Cc: gre...@linuxfoundation.org; de...@driverdev.osuosl.org; peter.se...@gmail.com; linux-ker...@vger.kernel.org; rmf...@gmail.com; teobal...@gmail.com; Sharma, Sanjeev Subject: Re: [PATCH v2 1/4] staging: rtl8192u: Remove useless return statement in r819xU_phy.c These patches look ok now. The only thing is that the changelogs are a little off. On Wed, Jul 09, 2014 at 11:34:17AM +0530, sanjeev sharma wrote: > From: sanjeev sharma Don't use the From header unless you are sending patches on behalf of someone else. It's better if you can configure your email client so you can send the patches from your @mentor.com address. It would be better if the names were capitalized. I will take care for future patches and configure email client by using mentor address. > > This is a patch to the r819xU_phy.c file that remove unneeded return > statements in code. Please line wrap the changelog at 72 characters (the same as email). Otherwise Greg sometimes fixes them manually... But the patches themselves are nice now. @Greg.,@Dan: Is it Ok if this can be taken care in future. regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/2] staging: media: bcm2048: radio-bcm2048.c - removed IRQF_DISABLED macro
On Wed 2014-07-09 11:36:37, Anil Belur wrote: > From: Anil Belur > > - this patch removes IRQF_DISABLED macro, as this is > deprecated/noop. > > Signed-off-by: Anil Belur Acked-by: Pavel Machek -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 2/2] staging: nokia_h4p: nokia_core.c - removed IRQF_DISABLED macro
On Wed 2014-07-09 11:36:38, Anil Belur wrote: > From: Anil Belur > > - this patch removes the IRQF_DISABLED macro, as this is > deprecated/noop. > > Signed-off-by: Anil Belur Acked-by: Pavel Machek I wonder if it would maek sense to do ./include/linux/interrupt.h:#define IRQF_DISABLED 0 to make it extra clear that it is nop now? Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3 0/4] line wrapping of changelog
line wrap the changelog as per Dan sanjeev sharma (4): staging: rtl8192u: Remove useless return statements. staging: rtl8192u: Removed unnecessary whitespace & tab warning. staging: rtl8192u: Fixed switch and case indentation error. staging: rtl8192u: Fixed too long lines drivers/staging/rtl8192u/r819xU_phy.c | 58 +++ 1 file changed, 25 insertions(+), 33 deletions(-) -- 1.7.11.7 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3 1/4] staging: rtl8192u: Remove useless return statements.
From: sanjeev sharma This patch will remove unneeded return statements in code. Signed-off-by: Sanjeev Sharma --- drivers/staging/rtl8192u/r819xU_phy.c | 13 - 1 file changed, 13 deletions(-) diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c index 02554c9..0bcdd4e 100644 --- a/drivers/staging/rtl8192u/r819xU_phy.c +++ b/drivers/staging/rtl8192u/r819xU_phy.c @@ -101,7 +101,6 @@ void rtl8192_setBBreg(struct net_device *dev, u32 reg_addr, u32 bitmask, } else { write_nic_dword(dev, reg_addr, data); } - return; } /** @@ -281,7 +280,6 @@ static void rtl8192_phy_RFSerialWrite(struct net_device *dev, priv->RfReg0Value[eRFPath] << 16); } } - return; } /** @@ -332,7 +330,6 @@ void rtl8192_phy_SetRFReg(struct net_device *dev, RF90_RADIO_PATH_E eRFPath, rtl8192_phy_RFSerialWrite(dev, eRFPath, reg_addr, data); } } - return; } /** @@ -513,7 +510,6 @@ void rtl8192_phy_configmac(struct net_device *dev) rtl8192_setBBreg(dev, pdwArray[i], pdwArray[i+1], pdwArray[i+2]); } - return; } /** @@ -559,7 +555,6 @@ void rtl8192_phyConfigBB(struct net_device *dev, u8 ConfigType) rtl819XAGCTAB_Array[i+1]); } } - return; } /** @@ -846,7 +841,6 @@ static void rtl8192_BB_Config_ParaFile(struct net_device *dev) priv->bCckHighPower = (u8)rtl8192_QueryBBReg(dev, rFPGA0_XA_HSSIParameter2, 0x200); - return; } /** @@ -864,7 +858,6 @@ void rtl8192_BBConfig(struct net_device *dev) * implemented, so use file first. * FIXME: should implement it for hardcode? */ rtl8192_BB_Config_ParaFile(dev); - return; } @@ -912,8 +905,6 @@ void rtl8192_phy_getTxPower(struct net_device *dev) /* Read SIFS (save the value read fome MACPHY_REG.txt) */ read_nic_word(dev, SIFS, &priv->SifsTime); - - return; } /** @@ -942,7 +933,6 @@ void rtl8192_phy_setTxPower(struct net_device *dev, u8 channel) __func__); break; } - return; } /** @@ -963,7 +953,6 @@ void rtl8192_phy_RFConfig(struct net_device *dev) RT_TRACE(COMP_ERR, "error chip id\n"); break; } - return; } /** @@ -974,7 +963,6 @@ void rtl8192_phy_RFConfig(struct net_device *dev) **/ void rtl8192_phy_updateInitGain(struct net_device *dev) { - return; } /** @@ -1094,7 +1082,6 @@ static void rtl8192_SetTxPowerLevel(struct net_device *dev, u8 channel) RT_TRACE(COMP_ERR, "unknown rf chip ID in %s()\n", __func__); break; } - return; } /** -- 1.7.11.7 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3 4/4] staging: rtl8192u: Fixed too long lines
From: sanjeev sharma This patch will fix too long lines warning reported by checkpatch.pl. Signed-off-by: Sanjeev Sharma --- drivers/staging/rtl8192u/r819xU_phy.c | 10 +++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c index 3155616..1ea3a4e 100644 --- a/drivers/staging/rtl8192u/r819xU_phy.c +++ b/drivers/staging/rtl8192u/r819xU_phy.c @@ -1236,7 +1236,8 @@ static u8 rtl8192_phy_SetSwChnlCmdArray(SwChnlCmd *CmdTable, u32 CmdTableIdx, return false; } if (CmdTableIdx >= CmdTableSz) { - RT_TRACE(COMP_ERR, "%s(): Access invalid index, please check size of the table, CmdTableIdx:%d, CmdTableSz:%d\n", + RT_TRACE(COMP_ERR, +"%s():invalid index,CmdTableIdx:%d, CmdTableSz:%d\n", __func__, CmdTableIdx, CmdTableSz); return false; } @@ -1697,7 +1698,8 @@ void InitialGain819xUsb(struct net_device *dev, u8 Operation) priv->InitialGainOperateType = Operation; if (priv->up) - queue_delayed_work(priv->priv_wq, &priv->initialgain_operate_wq, 0); + queue_delayed_work(priv->priv_wq, + &priv->initialgain_operate_wq, 0); } void InitialGainOperateWorkItemCallBack(struct work_struct *work) @@ -1786,7 +1788,9 @@ void InitialGainOperateWorkItemCallBack(struct work_struct *work) RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xa0a is %x\n", priv->initgain_backup.cca); - rtl8192_phy_setTxPower(dev, priv->ieee80211->current_network.channel); + rtl8192_phy_setTxPower(dev, + priv->ieee80211->current_network.channel + ); if (dm_digtable.dig_algorithm == DIG_ALGO_BY_FALSE_ALARM) /* FW DIG ON */ -- 1.7.11.7 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3 3/4] staging: rtl8192u: Fixed switch and case indentation error.
From: sanjeev sharma This patch will fix switch and case indentation Error reported by checkpatch script. Signed-off-by: Sanjeev Sharma --- drivers/staging/rtl8192u/r819xU_phy.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c index 0fcb673..3155616 100644 --- a/drivers/staging/rtl8192u/r819xU_phy.c +++ b/drivers/staging/rtl8192u/r819xU_phy.c @@ -946,12 +946,12 @@ void rtl8192_phy_RFConfig(struct net_device *dev) struct r8192_priv *priv = ieee80211_priv(dev); switch (priv->rf_chip) { - case RF_8256: - PHY_RF8256_Config(dev); - break; - default: - RT_TRACE(COMP_ERR, "error chip id\n"); - break; + case RF_8256: + PHY_RF8256_Config(dev); + break; + default: + RT_TRACE(COMP_ERR, "error chip id\n"); + break; } } -- 1.7.11.7 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3 2/4] staging: rtl8192u: Removed unnecessary whitespace & tab warning.
From: sanjeev sharma This patch will remove whitespace and tabs reported by checkpatch.pl script. Signed-off-by: Sanjeev Sharma --- drivers/staging/rtl8192u/r819xU_phy.c | 23 --- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/drivers/staging/rtl8192u/r819xU_phy.c b/drivers/staging/rtl8192u/r819xU_phy.c index 0bcdd4e..0fcb673 100644 --- a/drivers/staging/rtl8192u/r819xU_phy.c +++ b/drivers/staging/rtl8192u/r819xU_phy.c @@ -106,10 +106,10 @@ void rtl8192_setBBreg(struct net_device *dev, u32 reg_addr, u32 bitmask, /** * function: This function reads specific bits from BB register * input: net_device *dev - *u32 reg_addr //target addr to be readback - *u32 bitmask//taget bit pos to be readback - * output:none - * return:u32 data //the readback register value + * u32 reg_addr //target addr to be readback + * u32 bitmask//taget bit pos to be readback + * output: none + * return: u32 data //the readback register value * notice: **/ u32 rtl8192_QueryBBReg(struct net_device *dev, u32 reg_addr, u32 bitmask) @@ -478,9 +478,9 @@ static void phy_FwRFSerialWrite(struct net_device *dev, /** * function: This function reads BB parameters from header file we generate, *and do register read/write - * input: net_device *dev - * output:none - * return:none + * input: net_device *dev + * output: none + * return: none * notice:BB parameters may change all the time, so please make *sure it has been synced with the newest. */ @@ -900,7 +900,7 @@ void rtl8192_phy_getTxPower(struct net_device *dev) read_nic_byte(dev, rOFDM0_RxDetector3, &priv->framesync); read_nic_byte(dev, rOFDM0_RxDetector2, &tmp); priv->framesyncC34 = tmp; - RT_TRACE(COMP_INIT, "Default framesync (0x%x) = 0x%x \n", + RT_TRACE(COMP_INIT, "Default framesync (0x%x) = 0x%x\n", rOFDM0_RxDetector3, priv->framesync); /* Read SIFS (save the value read fome MACPHY_REG.txt) */ @@ -1463,6 +1463,7 @@ void rtl8192_SwChnl_WorkItem(struct net_device *dev) u8 rtl8192_phy_SwChnl(struct net_device *dev, u8 channel) { struct r8192_priv *priv = ieee80211_priv(dev); + RT_TRACE(COMP_CH, "%s(), SwChnlInProgress: %d\n", __func__, priv->SwChnlInProgress); if (!priv->up) @@ -1745,13 +1746,13 @@ void InitialGainOperateWorkItemCallBack(struct work_struct *work) RT_TRACE(COMP_SCAN, "Scan InitialGainBackup 0xa0a is %x\n", priv->initgain_backup.cca); - RT_TRACE(COMP_SCAN, "Write scan initial gain = 0x%x \n", + RT_TRACE(COMP_SCAN, "Write scan initial gain = 0x%x\n", initial_gain); write_nic_byte(dev, rOFDM0_XAAGCCore1, initial_gain); write_nic_byte(dev, rOFDM0_XBAGCCore1, initial_gain); write_nic_byte(dev, rOFDM0_XCAGCCore1, initial_gain); write_nic_byte(dev, rOFDM0_XDAGCCore1, initial_gain); - RT_TRACE(COMP_SCAN, "Write scan 0xa0a = 0x%x \n", + RT_TRACE(COMP_SCAN, "Write scan 0xa0a = 0x%x\n", POWER_DETECTION_TH); write_nic_byte(dev, 0xa0a, POWER_DETECTION_TH); break; @@ -1792,7 +1793,7 @@ void InitialGainOperateWorkItemCallBack(struct work_struct *work) rtl8192_setBBreg(dev, UFWP, bMaskByte1, 0x1); break; default: - RT_TRACE(COMP_SCAN, "Unknown IG Operation. \n"); + RT_TRACE(COMP_SCAN, "Unknown IG Operation.\n"); break; } } -- 1.7.11.7 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v3 0/4] line wrapping of changelog
Great. Thanks! regards, dan carpenter ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 2/2] staging: nokia_h4p: nokia_core.c - removed IRQF_DISABLED macro
On Wednesday 09 July 2014 05:16 PM, Pavel Machek wrote: > I wonder if it would maek sense to do > ./include/linux/interrupt.h:#define IRQF_DISABLED 0 to make it extra > clear that it is nop now? Pavel yes - it makes sense. there are still a few references to the macro in the code. Cheers, Anil ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v3 4/4] staging: rtl8192u: Fixed too long lines
On Wed, 2014-07-09 at 17:49 +0530, sanjeev sharma wrote: > This patch will fix too long lines warning > reported by checkpatch.pl. Hi Sanjeev. > diff --git a/drivers/staging/rtl8192u/r819xU_phy.c > b/drivers/staging/rtl8192u/r819xU_phy.c [] > @@ -1786,7 +1788,9 @@ void InitialGainOperateWorkItemCallBack(struct > work_struct *work) > RT_TRACE(COMP_SCAN, "Scan BBInitialGainRestore 0xa0a is %x\n", >priv->initgain_backup.cca); > > - rtl8192_phy_setTxPower(dev, > priv->ieee80211->current_network.channel); > + rtl8192_phy_setTxPower(dev, > + priv->ieee80211->current_network.channel > +); This one is a little off + rtl8192_phy_setTxPower(dev, + priv->ieee80211->current_network.channel + ); Please align multiline statements to the appropriate open parenthesis using a mix of initial leading tabs followed by the minimal number of spaces required to put the first non-whitespace char at the column immediately after the preceding open paren. Here it's 4 tabs, 7 spaces, not 5 tabs: + rtl8192_phy_setTxPower(dev, + priv->ieee80211->current_network.channel); And please don't use a line that's just a close parenthesis and semicolon. I think it's better to ignore the 80 column limit for these and place them at the end of the preceding line. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v2] hyperv: Add netpoll support
Am 09.07.2014 16:13, schrieb Sergei Shtylyov: > Hello. > > On 07/09/2014 11:58 AM, Richard Weinberger wrote: > >> In order to have at least a netconsole to debug kernel issues on >> Windows Azure this patch implements netpoll support. >> Sending packets is easy, netvsc_start_xmit() does already everything >> needed. > >> Signed-off-by: Richard Weinberger >> --- >> drivers/net/hyperv/netvsc_drv.c | 11 +++ >> 1 file changed, 11 insertions(+) > >> diff --git a/drivers/net/hyperv/netvsc_drv.c >> b/drivers/net/hyperv/netvsc_drv.c >> index 4fd71b7..45218d5 100644 >> --- a/drivers/net/hyperv/netvsc_drv.c >> +++ b/drivers/net/hyperv/netvsc_drv.c >> @@ -736,6 +736,14 @@ static int netvsc_set_mac_addr(struct net_device *ndev, >> void *p) >> return err; >> } >> >> +#ifdef CONFIG_NET_POLL_CONTROLLER >> +static void netvsc_poll_controller(struct net_device *net) >> +{ >> +/* As netvsc_start_xmit() works synchronous we don't have to >> + trigger anything here. */ > >The multi-line comment style in the networking code is this: > > /* bla > * bla > */ > >> +return; > >Not needed. > >> +} >> +#endif > [...] -ETOOMANYCODINGSTYLES :) Thanks, //richard ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3] hyperv: Add netpoll support
In order to have at least a netconsole to debug kernel issues on Windows Azure this patch implements netpoll support. Sending packets is easy, netvsc_start_xmit() does already everything needed. Signed-off-by: Richard Weinberger --- drivers/net/hyperv/netvsc_drv.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 4fd71b7..fcf3be7 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -736,6 +736,14 @@ static int netvsc_set_mac_addr(struct net_device *ndev, void *p) return err; } +#ifdef CONFIG_NET_POLL_CONTROLLER +static void netvsc_poll_controller(struct net_device *net) +{ + /* As netvsc_start_xmit() works synchronous we don't have to +* trigger anything here. +*/ +} +#endif static const struct ethtool_ops ethtool_ops = { .get_drvinfo= netvsc_get_drvinfo, @@ -751,6 +759,9 @@ static const struct net_device_ops device_ops = { .ndo_validate_addr =eth_validate_addr, .ndo_set_mac_address = netvsc_set_mac_addr, .ndo_select_queue = netvsc_select_queue, +#ifdef CONFIG_NET_POLL_CONTROLLER + .ndo_poll_controller = netvsc_poll_controller, +#endif }; /* -- 2.0.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v2] hyperv: Add netpoll support
Hello. On 07/09/2014 11:58 AM, Richard Weinberger wrote: In order to have at least a netconsole to debug kernel issues on Windows Azure this patch implements netpoll support. Sending packets is easy, netvsc_start_xmit() does already everything needed. Signed-off-by: Richard Weinberger --- drivers/net/hyperv/netvsc_drv.c | 11 +++ 1 file changed, 11 insertions(+) diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index 4fd71b7..45218d5 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -736,6 +736,14 @@ static int netvsc_set_mac_addr(struct net_device *ndev, void *p) return err; } +#ifdef CONFIG_NET_POLL_CONTROLLER +static void netvsc_poll_controller(struct net_device *net) +{ + /* As netvsc_start_xmit() works synchronous we don't have to + trigger anything here. */ The multi-line comment style in the networking code is this: /* bla * bla */ + return; Not needed. +} +#endif [...] WBR, Sergei ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH] staging: bcm: add missing blank lines after declarations
Fix "Missing blank line after declaration" warnings reported by checkpatch.pl. Signed-off-by: Pawel Lebioda --- drivers/staging/bcm/CmHost.c| 1 + drivers/staging/bcm/IPv6Protocol.c | 6 ++ drivers/staging/bcm/InterfaceDld.c | 1 + drivers/staging/bcm/InterfaceInit.c | 1 + drivers/staging/bcm/InterfaceMisc.c | 1 + drivers/staging/bcm/PHSModule.c | 1 + drivers/staging/bcm/Qos.c | 9 - drivers/staging/bcm/Transmit.c | 1 + drivers/staging/bcm/led_control.c | 4 drivers/staging/bcm/nvm.c | 6 ++ 10 files changed, 30 insertions(+), 1 deletion(-) diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c index 3dbdf0e..adca0ce 100644 --- a/drivers/staging/bcm/CmHost.c +++ b/drivers/staging/bcm/CmHost.c @@ -972,6 +972,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer) pstAddIndication->sfAuthorizedSet.bValid = 1; for (nIndex = 0; nIndex < nCurClassifierCnt; nIndex++) { struct bcm_convergence_types *psfCSType = NULL; + psfCSType = &pstAddIndication->sfAuthorizedSet.cConvergenceSLTypes[nIndex]; BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, DUMP_CONTROL, DBG_LVL_ALL, "psfCSType = %p", psfCSType); diff --git a/drivers/staging/bcm/IPv6Protocol.c b/drivers/staging/bcm/IPv6Protocol.c index cd16067..e013c5a 100644 --- a/drivers/staging/bcm/IPv6Protocol.c +++ b/drivers/staging/bcm/IPv6Protocol.c @@ -45,6 +45,7 @@ static UCHAR *GetNextIPV6ChainedHeader(UCHAR **ppucPayload, case IPV6HDR_TYPE_ROUTING: { struct bcm_ipv6_routing_hdr *pstIpv6RoutingHeader; + BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, DBG_LVL_ALL, "\nIPv6 Routing Header"); pstIpv6RoutingHeader = (struct bcm_ipv6_routing_hdr *)pucPayloadPtr; @@ -66,6 +67,7 @@ static UCHAR *GetNextIPV6ChainedHeader(UCHAR **ppucPayload, { struct bcm_ipv6_dest_options_hdr *pstIpv6DestOptsHdr = (struct bcm_ipv6_dest_options_hdr *)pucPayloadPtr; int nTotalOptions = pstIpv6DestOptsHdr->ucHdrExtLen; + BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, DBG_LVL_ALL, "\nIPv6 DestOpts Header Header"); @@ -78,6 +80,7 @@ static UCHAR *GetNextIPV6ChainedHeader(UCHAR **ppucPayload, { struct bcm_ipv6_authentication_hdr *pstIpv6AuthHdr = (struct bcm_ipv6_authentication_hdr *)pucPayloadPtr; int nHdrLen = pstIpv6AuthHdr->ucLength; + BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, DBG_LVL_ALL, "\nIPv6 Authentication Header"); @@ -275,6 +278,7 @@ USHORT IpVersion6(struct bcm_mini_adapter *Adapter, PVOID pcIpHeader, if (bClassificationSucceed == TRUE) { INT iMatchedSFQueueIndex = 0; + iMatchedSFQueueIndex = SearchSfid(Adapter, pstClassifierRule->ulSFID); if (iMatchedSFQueueIndex >= NO_OF_QUEUES) { bClassificationSucceed = false; @@ -407,6 +411,7 @@ VOID DumpIpv6Address(ULONG *puIpv6Address) UINT uiIpv6AddrNoLongWords = 4; UINT uiIpv6AddIndex = 0; struct bcm_mini_adapter *Adapter = GET_BCM_ADAPTER(gblpnetdev); + for (uiIpv6AddIndex = 0; uiIpv6AddIndex < uiIpv6AddrNoLongWords; uiIpv6AddIndex++) { BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, DBG_LVL_ALL, ":%lx", puIpv6Address[uiIpv6AddIndex]); @@ -419,6 +424,7 @@ static VOID DumpIpv6Header(struct bcm_ipv6_hdr *pstIpv6Header) UCHAR ucVersion; UCHAR ucPrio; struct bcm_mini_adapter *Adapter = GET_BCM_ADAPTER(gblpnetdev); + BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, DBG_LVL_ALL, "Ipv6 Header---"); ucVersion = pstIpv6Header->ucVersionPrio & 0xf0; diff --git a/drivers/staging/bcm/InterfaceDld.c b/drivers/staging/bcm/InterfaceDld.c index e1925bd..abc7a7a 100644 --- a/drivers/staging/bcm/InterfaceDld.c +++ b/drivers/staging/bcm/InterfaceDld.c @@ -244,6 +244,7 @@ static INT buffDnld(struct bcm_mini_adapter *Adapter, { unsigned int len = 0; int retval = STATUS_SUCCESS; + len = u32FirmwareLength; while (u32FirmwareLength) { diff --git a/drivers/staging/bcm/InterfaceInit.c b/drivers/staging/bcm/InterfaceInit.c index bef13a6..bb61d34 100644 --- a/drivers/staging/bcm/InterfaceInit.c +++ b/drivers/staging/bcm/InterfaceInit.c @@ -440,6 +440,7 @@ static int select_alternate_setting_for_highspeed_modem( * Else USB_IF will fail. */ UINT _uiData = ntohl(EP2_CFG_INT); + BCM_D
Re: [PATCH] staging: bcm: add missing blank lines after declarations
On Wed, 2014-07-09 at 17:59 +0200, Pawel Lebioda wrote: > Fix "Missing blank line after declaration" warnings reported by > checkpatch.pl. trivial unrelated notes: > diff --git a/drivers/staging/bcm/CmHost.c b/drivers/staging/bcm/CmHost.c > index 3dbdf0e..adca0ce 100644 > --- a/drivers/staging/bcm/CmHost.c > +++ b/drivers/staging/bcm/CmHost.c > @@ -972,6 +972,7 @@ static VOID DumpCmControlPacket(PVOID pvBuffer) > pstAddIndication->sfAuthorizedSet.bValid = 1; > for (nIndex = 0; nIndex < nCurClassifierCnt; nIndex++) { > struct bcm_convergence_types *psfCSType = NULL; > + > psfCSType = > &pstAddIndication->sfAuthorizedSet.cConvergenceSLTypes[nIndex]; You might consider removing the = NULL; on the declaration as it's set on the next line. > diff --git a/drivers/staging/bcm/IPv6Protocol.c > b/drivers/staging/bcm/IPv6Protocol.c > index cd16067..e013c5a 100644 > --- a/drivers/staging/bcm/IPv6Protocol.c > +++ b/drivers/staging/bcm/IPv6Protocol.c > @@ -45,6 +45,7 @@ static UCHAR *GetNextIPV6ChainedHeader(UCHAR **ppucPayload, [] > BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, > DBG_LVL_ALL, "\nIPv6 Routing Header"); The leading "\n" is unnecessary and could be removed. > @@ -66,6 +67,7 @@ static UCHAR *GetNextIPV6ChainedHeader(UCHAR **ppucPayload, [] > BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, > DBG_LVL_ALL, > "\nIPv6 DestOpts Header Header"); etc. > @@ -407,6 +411,7 @@ VOID DumpIpv6Address(ULONG *puIpv6Address) > UINT uiIpv6AddrNoLongWords = 4; > UINT uiIpv6AddIndex = 0; > struct bcm_mini_adapter *Adapter = GET_BCM_ADAPTER(gblpnetdev); > + > for (uiIpv6AddIndex = 0; uiIpv6AddIndex < uiIpv6AddrNoLongWords; > uiIpv6AddIndex++) { > BCM_DEBUG_PRINT(Adapter, DBG_TYPE_TX, IPV6_DBG, DBG_LVL_ALL, > ":%lx", puIpv6Address[uiIpv6AddIndex]); All of these are effectively broken. There's no BCM_DEBUG_PRINT that's like a pr_cont. All of these are emitted on separate lines. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 8/8] staging: rtl8712: remove inapplicable comment
On Tue, Jul 08, 2014 at 01:16:53PM +0300, Dan Carpenter wrote: > On Tue, Jun 24, 2014 at 10:52:41PM -0400, James A Shackleford wrote: > > Signed-off-by: James A Shackleford > > --- > > drivers/staging/rtl8712/osdep_service.h |5 - > > 1 file changed, 5 deletions(-) > > > > diff --git a/drivers/staging/rtl8712/osdep_service.h > > b/drivers/staging/rtl8712/osdep_service.h > > index 77b1443..3dfc473 100644 > > --- a/drivers/staging/rtl8712/osdep_service.h > > +++ b/drivers/staging/rtl8712/osdep_service.h > > @@ -95,11 +95,6 @@ static inline void _set_workitem(_workitem *pwork) > > #define BIT(x) (1 << (x)) > > #endif > > > > -/* > > -For the following list_xxx operations, > > -caller must guarantee the atomic context. > > -Otherwise, there will be racing condition. > > -*/ > > static inline u32 _down_sema(struct semaphore *sema) > > { > > if (down_interruptible(sema)) > > This function sucks obviously just like the wrappers you deleted earlier. > > Only one of the callers checks the return value. > > TODO-list: 2014-07-08: rtl8712: delete _down_sema(). > > regards, > dan carpenter > I completely agree -- most of the stuff in this header is pretty ugly. More clean-up patches are in the pipe. Regards, James Shackleford ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] drivers: staging: android: ion: Kconfig: Let it also depend on HAS_DMA
On Mon, Jul 7, 2014 at 1:49 AM, Chen Gang wrote: > ION need HAS_DMA (e.g. need DMA_SHARED_BUFFER), so it has to depend on > HAS_DMA, or can not pass compiling with allmodconfig under score which > NO_DMA. And the related error: > > CC drivers/staging/android/ion/ion_cma_heap.o > drivers/staging/android/ion/ion_cma_heap.c: In function 'ion_cma_mmap': > drivers/staging/android/ion/ion_cma_heap.c:168:2: error: implicit > declaration of function 'dma_mmap_coherent' > [-Werror=implicit-function-declaration] > return dma_mmap_coherent(dev, vma, info->cpu_addr, info->handle, > ^ > cc1: some warnings being treated as errors > make[4]: *** [drivers/staging/android/ion/ion_cma_heap.o] Error 1 > make[3]: *** [drivers/staging/android/ion] Error 2 > make[2]: *** [drivers/staging/android] Error 2 > make[1]: *** [drivers/staging] Error 2 > make: *** [drivers] Error 2 > > > Signed-off-by: Chen Gang > --- > drivers/staging/android/ion/Kconfig | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/staging/android/ion/Kconfig > b/drivers/staging/android/ion/Kconfig > index 0f8fec1..0a6e4d0 100644 > --- a/drivers/staging/android/ion/Kconfig > +++ b/drivers/staging/android/ion/Kconfig > @@ -1,6 +1,6 @@ > menuconfig ION > bool "Ion Memory Manager" > - depends on HAVE_MEMBLOCK > + depends on HAVE_MEMBLOCK && HAS_DMA > select GENERIC_ALLOCATOR > select DMA_SHARED_BUFFER > ---help--- > -- > 1.9.2.459.g68773ac Acked-by: Colin Cross ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH V2] staging: gdm72xx: move T_CAPABILITY definitions to hci.h
On 07/09/2014 11:26 AM, Dan Carpenter wrote: >> /* GetInformation mac address */ >> len = 0; >> @@ -621,12 +618,12 @@ static void gdm_wimax_prepare_device(struct net_device >> *dev) >> hci->length = H2B(len); >> gdm_wimax_send(nic, hci, HCI_HEADER_SIZE+len); >> >> -val = (1<> +val = (1 << T_CAPABILITY_WIMAX) | (1 << T_CAPABILITY_MULTI_CS); > > Double shifting here... It should just be: > > val = T_CAPABILITY_WIMAX | T_CAPABILITY_MULTI_CS; > Ooops! Thanks for spotting that, will submit a corrected patch. M. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v3] staging: gdm72xx: move T_CAPABILITY definitions to hci.h
Signed-off-by: Michalis Pappas --- drivers/staging/gdm72xx/gdm_wimax.c | 11 +++ drivers/staging/gdm72xx/hci.h | 6 ++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/gdm72xx/gdm_wimax.c b/drivers/staging/gdm72xx/gdm_wimax.c index 4148013..5748d39 100644 --- a/drivers/staging/gdm72xx/gdm_wimax.c +++ b/drivers/staging/gdm72xx/gdm_wimax.c @@ -609,11 +609,6 @@ static void gdm_wimax_prepare_device(struct net_device *dev) u16 len = 0; u32 val = 0; - #define BIT_MULTI_CS0 - #define BIT_WIMAX 1 - #define BIT_QOS 2 - #define BIT_AGGREGATION 3 - /* GetInformation mac address */ len = 0; hci->cmd_evt = H2B(WIMAX_GET_INFO); @@ -621,12 +616,12 @@ static void gdm_wimax_prepare_device(struct net_device *dev) hci->length = H2B(len); gdm_wimax_send(nic, hci, HCI_HEADER_SIZE+len); - val = (1
RE: [PATCH 8/8] drivers: scsi: storvsc: Correctly handle TEST_UNIT_READY failure
> -Original Message- > From: Christoph Hellwig [mailto:h...@infradead.org] > Sent: Wednesday, July 9, 2014 1:47 AM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > Subject: Re: [PATCH 8/8] drivers: scsi: storvsc: Correctly handle > TEST_UNIT_READY failure > > On Tue, Jul 08, 2014 at 05:46:52PM -0700, K. Y. Srinivasan wrote: > > --- a/drivers/scsi/storvsc_drv.c > > +++ b/drivers/scsi/storvsc_drv.c > > @@ -1023,6 +1023,13 @@ static void storvsc_handle_error(struct > vmscsi_request *vm_srb, > > case ATA_12: > > set_host_byte(scmnd, DID_PASSTHROUGH); > > break; > > + /* > > +* On Some Windows hosts TEST_UNIT_READY command can > return > > +* SRB_STATUS_ERROR, let the upper level code deal with it > > +* based on the sense information. > > +*/ > > + case TEST_UNIT_READY: > > + break; > > Don't we need to set an error in the command for the error handler to take > action? Or is this propagated elsewhere? The host sets the appropriate scsi response and sense information that allows the upper-level scsi stack to appropriately recover. We are just making sure that we won't mark the target as failed which is what would happen in the absence of this patch since the host has set a very generic SRB error code that indicates failure. Regards, K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 7/8] drivers: scsi: storvsc: Set srb_flags in all cases
> -Original Message- > From: Christoph Hellwig [mailto:h...@infradead.org] > Sent: Wednesday, July 9, 2014 1:45 AM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > Subject: Re: [PATCH 7/8] drivers: scsi: storvsc: Set srb_flags in all cases > > On Tue, Jul 08, 2014 at 05:46:51PM -0700, K. Y. Srinivasan wrote: > > Correctly set SRB flags for all valid I/O directions. Some IHV drivers > > on the Windows host require this. > > What are IHV drivers? If the target is a SAN device, the host simply passes the request over to the native driver stack on the host. Some specific hardware (IHV - independent hadware vendor) drivers on Windows require that SRB flags be correctly set in all cases. Regards, K. Y > > > Otherwise looks fine, > > Reviewed-by: Christoph Hellwig ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: gdm72xx: conditionally compile debug code
On Tue, Jul 01, 2014 at 02:00:15PM +0100, Michalis Pappas wrote: > Signed-off-by: Michalis Pappas > --- > drivers/staging/gdm72xx/gdm_qos.c | 2 ++ > drivers/staging/gdm72xx/gdm_sdio.c | 7 +++ > drivers/staging/gdm72xx/gdm_usb.c | 7 +++ > drivers/staging/gdm72xx/gdm_wimax.c | 6 ++ > drivers/staging/gdm72xx/gdm_wimax.h | 2 ++ > 5 files changed, 24 insertions(+) > > diff --git a/drivers/staging/gdm72xx/gdm_qos.c > b/drivers/staging/gdm72xx/gdm_qos.c > index b08c8e1..7900981 100644 > --- a/drivers/staging/gdm72xx/gdm_qos.c > +++ b/drivers/staging/gdm72xx/gdm_qos.c > @@ -88,7 +88,9 @@ static void free_qos_entry_list(struct list_head *free_list) > total_free++; > } > > + #if defined(GDM72xx_DEBUG) > pr_debug("%s: total_free_cnt=%d\n", __func__, total_free); > + #endif Ick, no, never put #ifdef in .c code if you can help it. For stuff like this, just rely on the dynamic debug core and use the pr_debug and dev_dbg() calls, like the driver is doing, so all should be fine. > diff --git a/drivers/staging/gdm72xx/gdm_sdio.c > b/drivers/staging/gdm72xx/gdm_sdio.c > index 9d2de6f..914fd75 100644 > --- a/drivers/staging/gdm72xx/gdm_sdio.c > +++ b/drivers/staging/gdm72xx/gdm_sdio.c > @@ -280,9 +280,11 @@ static void send_sdu(struct sdio_func *func, struct > tx_cxt *tx) > > spin_unlock_irqrestore(&tx->lock, flags); > > + #if defined(GDM72xx_DEBUG) > print_hex_dump_debug("sdio_send: ", DUMP_PREFIX_NONE, 16, 1, >tx->sdu_buf + TYPE_A_HEADER_SIZE, >aggr_len - TYPE_A_HEADER_SIZE, false); > + #endif This should be moved to use dev_dbg(), along with the other calls to this function in this file. thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 6/8] Drivers: scsi: storvsc: Implement an abort handler
> -Original Message- > From: Christoph Hellwig [mailto:h...@infradead.org] > Sent: Wednesday, July 9, 2014 1:44 AM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > a...@canonical.com; linux-s...@vger.kernel.org > Subject: Re: [PATCH 6/8] Drivers: scsi: storvsc: Implement an abort handler > > On Tue, Jul 08, 2014 at 05:46:50PM -0700, K. Y. Srinivasan wrote: > > Implement a simple abort handler. The host does not support "Abort"; > > just ensure that all inflight I/Os have been accounted for. > > The abort handler should abort a single command, not wait for all of them. > What issue do you see that this tries to address? On Azure, we sometimes have unbounded I/O latencies and some distributions (such as SLES12) based on recent kernels are invoking the "Abort Handler". Unfortunately, our scsi emulation on the host does not support aborting a command. The issue I have seen is that the upper level scsi code attempts error recovery when the command times out and finally frees up the command. The host subsequently responds to the command that has timed out and since the memory has been freed up, we end up touching freed memory in this driver. Since the host is also doing error recovery, by just delaying the error handler in the guest until we can account for all the in-flight commands, we can get around the problem. Regards, K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: gdm72xx: reorder functions and remove function declarations
On Thu, Jul 03, 2014 at 06:45:03PM +0100, Michalis Pappas wrote: > Signed-off-by: Michalis Pappas > --- > drivers/staging/gdm72xx/gdm_sdio.c | 77 > drivers/staging/gdm72xx/gdm_usb.c | 87 +- > drivers/staging/gdm72xx/gdm_wimax.c | 179 > +--- > 3 files changed, 164 insertions(+), 179 deletions(-) This patch no longer applies to my tree :( Can you refresh it and resend? thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v3] staging: gdm72xx: move T_CAPABILITY definitions to hci.h
On Wed, Jul 09, 2014 at 07:31:22PM +0100, Michalis Pappas wrote: > Signed-off-by: Michalis Pappas > --- > drivers/staging/gdm72xx/gdm_wimax.c | 11 +++ > drivers/staging/gdm72xx/hci.h | 6 ++ > 2 files changed, 9 insertions(+), 8 deletions(-) This no longer applies cleanly either, can you refresh and resend? thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 2/2] staging: silicom: function return fixes
On Tue, Jul 01, 2014 at 02:33:43PM +0200, Davide Gianforte wrote: > Function return fixes > > Some functions don't need a temporary variable to store return value. > > Where functions always return 0, changed into void functions. > > Signed-off-by: Davide Gianforte > -- > > drivers/staging/silicom/bpctl_mod.c | 62 > ++--- > 1 file changed, 16 insertions(+), 46 deletions(-) > > diff --git a/drivers/staging/silicom/bpctl_mod.c > b/drivers/staging/silicom/bpctl_mod.c > index 1322437..c9a4c40 100644 > --- a/drivers/staging/silicom/bpctl_mod.c > +++ b/drivers/staging/silicom/bpctl_mod.c > @@ -117,7 +117,7 @@ static struct bpctl_dev *get_status_port_fn(struct > bpctl_dev *pbpctl_dev); > static void if_scan_init(void); > > static int bypass_proc_create_dev_sd(struct bpctl_dev *pbp_device_block); > -static int bypass_proc_remove_dev_sd(struct bpctl_dev *pbp_device_block); > +static void bypass_proc_remove_dev_sd(struct bpctl_dev *pbp_device_block); > > static int is_bypass_fn(struct bpctl_dev *pbpctl_dev); > static int get_dev_idx_bsf(int bus, int slot, int func); > @@ -1458,9 +1458,8 @@ static int send_wdt_pulse(struct bpctl_dev *pbpctl_dev) > static void send_bypass_clear_pulse(struct bpctl_dev *pbpctl_dev, > unsigned int value) > { > - uint32_t ctrl_ext = 0; > + uint32_t ctrl_ext = BPCTL_READ_REG(pbpctl_dev, CTRL_EXT); > > - ctrl_ext = BPCTL_READ_REG(pbpctl_dev, CTRL_EXT); How about just removing the " = 0;" part of the variable definition? That would be a smaller patch, and still keep everything "clean". thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: dgap: removes redundant null check and change paramter for dgap_maxcps_room()
On Mon, Jul 07, 2014 at 10:27:54AM +0900, Daeseok Youn wrote: > Null checks for tty, un and ch are already done by caller, > so replace parameter "tty" with "ch" and "un". > > And also use a pointer for returning new bytes_available instead of > return variable. Why make that change? It's nicer to return a real value where ever possible. That's more like other "room" functions in the tty layer. Care to fix this up to just do the first change you made to the function instead? thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/5] staging: rtl8188eu: Remove WEXT_PRIV private ioctl handlers
On Tue, Jul 01, 2014 at 10:35:09PM +0530, navin patidar wrote: > Remove WEXT_PRIV (non-standard) ioctl handlers. > > Signed-off-by: navin patidar > --- > drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 6335 > +++- > 1 file changed, 744 insertions(+), 5591 deletions(-) This patch fails to apply :( Can you refresh it, and resend this series? thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 01/48] staging: rtl8188eu: Remove struct evt_priv and its uses
On Wed, Jul 02, 2014 at 10:16:57PM +0530, navin patidar wrote: > c2h_wk (work_struct) is naver scheduled to handle events, > so no use of keeping event data. > And also function rtw_hal_c2h_handler() responsible for handling c2h events, > is a dummy function. > > Signed-off-by: navin patidar > --- > drivers/staging/rtl8188eu/core/rtw_cmd.c | 86 > - > drivers/staging/rtl8188eu/core/rtw_mlme_ext.c |4 -- > drivers/staging/rtl8188eu/include/cmd_osdep.h |1 - > drivers/staging/rtl8188eu/include/drv_types.h |1 - > drivers/staging/rtl8188eu/include/rtw_cmd.h | 14 > drivers/staging/rtl8188eu/os_dep/os_intfs.c |8 --- > 6 files changed, 114 deletions(-) This patch doesn't apply either (probably due to me not taking your previous series.) So, can you refresh all of your pending patches that I have not applied yet against my tree, and resend them? thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 1/3] staging: rtl8712: remove wrapper function _init_workitem()
The inline function _init_workitem() is just a wrapper around INIT_WORK(). Oddly, this wrapper accepts 3 parameters while INIT_WORK() only accepts 2. The third parameter is unused. Signed-off-by: James A Shackleford --- drivers/staging/rtl8712/osdep_service.h | 5 - drivers/staging/rtl8712/rtl8712_led.c | 2 +- drivers/staging/rtl8712/rtl871x_pwrctrl.c | 6 ++ drivers/staging/rtl8712/rtl871x_xmit.c| 2 +- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index 67c53d5..2cf9a02 100644 --- a/drivers/staging/rtl8712/osdep_service.h +++ b/drivers/staging/rtl8712/osdep_service.h @@ -81,11 +81,6 @@ static inline void _cancel_timer(struct timer_list *ptimer, u8 *bcancelled) *bcancelled = true; /*true ==1; false==0*/ } -static inline void _init_workitem(_workitem *pwork, void *pfunc, void *cntx) -{ - INIT_WORK(pwork, pfunc); -} - static inline void _set_workitem(_workitem *pwork) { schedule_work(pwork); diff --git a/drivers/staging/rtl8712/rtl8712_led.c b/drivers/staging/rtl8712/rtl8712_led.c index 6cb1a0af5..a84ae2f 100644 --- a/drivers/staging/rtl8712/rtl8712_led.c +++ b/drivers/staging/rtl8712/rtl8712_led.c @@ -98,7 +98,7 @@ static void InitLed871x(struct _adapter *padapter, struct LED_871x *pLed, pLed->BlinkTimes = 0; pLed->BlinkingLedState = LED_UNKNOWN; _init_timer(&(pLed->BlinkTimer), nic, BlinkTimerCallback, pLed); - _init_workitem(&(pLed->BlinkWorkItem), BlinkWorkItemCallback, pLed); + INIT_WORK(&pLed->BlinkWorkItem, BlinkWorkItemCallback); } /* diff --git a/drivers/staging/rtl8712/rtl871x_pwrctrl.c b/drivers/staging/rtl8712/rtl871x_pwrctrl.c index 9fd2ec7..6cf051f 100644 --- a/drivers/staging/rtl8712/rtl871x_pwrctrl.c +++ b/drivers/staging/rtl8712/rtl871x_pwrctrl.c @@ -184,10 +184,8 @@ void r8712_init_pwrctrl_priv(struct _adapter *padapter) pwrctrlpriv->tog = 0x80; /* clear RPWM to ensure driver and fw back to initial state. */ r8712_write8(padapter, 0x1025FE58, 0); - _init_workitem(&(pwrctrlpriv->SetPSModeWorkItem), - SetPSModeWorkItemCallback, padapter); - _init_workitem(&(pwrctrlpriv->rpwm_workitem), - rpwm_workitem_callback, padapter); + INIT_WORK(&pwrctrlpriv->SetPSModeWorkItem, SetPSModeWorkItemCallback); + INIT_WORK(&pwrctrlpriv->rpwm_workitem, rpwm_workitem_callback); _init_timer(&(pwrctrlpriv->rpwm_check_timer), padapter->pnetdev, rpwm_check_handler, (u8 *)padapter); } diff --git a/drivers/staging/rtl8712/rtl871x_xmit.c b/drivers/staging/rtl8712/rtl871x_xmit.c index a104b77..b985edc 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.c +++ b/drivers/staging/rtl8712/rtl871x_xmit.c @@ -148,7 +148,7 @@ sint _r8712_init_xmit_priv(struct xmit_priv *pxmitpriv, pxmitbuf++; } pxmitpriv->free_xmitbuf_cnt = NR_XMITBUFF; - _init_workitem(&padapter->wkFilterRxFF0, r8712_SetFilter, padapter); + INIT_WORK(&padapter->wkFilterRxFF0, r8712_SetFilter); alloc_hwxmits(padapter); init_hwxmits(pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry); tasklet_init(&pxmitpriv->xmit_tasklet, -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 2/3] staging: rtl8712: remove wrapper function _set_workitem()
The inline function _set_workitem() simply wraps schedule_work(). Removed. Signed-off-by: James A Shackleford --- drivers/staging/rtl8712/osdep_service.h | 5 - drivers/staging/rtl8712/rtl8712_led.c | 2 +- drivers/staging/rtl8712/rtl871x_pwrctrl.c | 4 ++-- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index 2cf9a02..43795e7 100644 --- a/drivers/staging/rtl8712/osdep_service.h +++ b/drivers/staging/rtl8712/osdep_service.h @@ -81,11 +81,6 @@ static inline void _cancel_timer(struct timer_list *ptimer, u8 *bcancelled) *bcancelled = true; /*true ==1; false==0*/ } -static inline void _set_workitem(_workitem *pwork) -{ - schedule_work(pwork); -} - #ifndef BIT #define BIT(x) (1 << (x)) #endif diff --git a/drivers/staging/rtl8712/rtl8712_led.c b/drivers/staging/rtl8712/rtl8712_led.c index a84ae2f..56e8add 100644 --- a/drivers/staging/rtl8712/rtl8712_led.c +++ b/drivers/staging/rtl8712/rtl8712_led.c @@ -827,7 +827,7 @@ static void BlinkTimerCallback(unsigned long data) if ((pLed->padapter->bSurpriseRemoved == true) || (pLed->padapter->bDriverStopped == true)) return; - _set_workitem(&(pLed->BlinkWorkItem)); + schedule_work(&pLed->BlinkWorkItem); } /* Description: diff --git a/drivers/staging/rtl8712/rtl871x_pwrctrl.c b/drivers/staging/rtl8712/rtl871x_pwrctrl.c index 6cf051f..89ce527 100644 --- a/drivers/staging/rtl8712/rtl871x_pwrctrl.c +++ b/drivers/staging/rtl8712/rtl871x_pwrctrl.c @@ -83,7 +83,7 @@ void r8712_set_ps_mode(struct _adapter *padapter, uint ps_mode, uint smart_ps) pwrpriv->bSleep = false; pwrpriv->pwr_mode = ps_mode; pwrpriv->smart_ps = smart_ps; - _set_workitem(&(pwrpriv->SetPSModeWorkItem)); + schedule_work(&pwrpriv->SetPSModeWorkItem); } } @@ -133,7 +133,7 @@ static void _rpwm_check_handler (struct _adapter *padapter) padapter->bSurpriseRemoved == true) return; if (pwrpriv->cpwm != pwrpriv->rpwm) - _set_workitem(&(pwrpriv->rpwm_workitem)); + schedule_work(&pwrpriv->rpwm_workitem); } static void SetPSModeWorkItemCallback(struct work_struct *work) -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: nvec: add missing blank line after declarations
On Mon, Jul 07, 2014 at 06:05:41PM +0200, Pawel Lebioda wrote: > Fix 'missing blank line after declaration' warnings reported by checkpatch.pl. > Signed-off-by: Pawel Lebioda > --- > drivers/staging/nvec/nvec_paz00.c | 1 + > drivers/staging/nvec/nvec_power.c | 1 + > drivers/staging/nvec/nvec_ps2.c | 2 ++ > 3 files changed, 4 insertions(+) I applied your first version of this patch :) thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 3/3] staging: rtl8712: remove #define _workitem struct work_struct
_workitem is just a #define for work_struct. Remove the #define and use struct work_struct directly instead. Signed-off-by: James A Shackleford --- drivers/staging/rtl8712/drv_types.h | 2 +- drivers/staging/rtl8712/osdep_service.h | 1 - drivers/staging/rtl8712/rtl871x_led.h | 2 +- drivers/staging/rtl8712/rtl871x_pwrctrl.h | 4 ++-- drivers/staging/rtl8712/rtl871x_xmit.h| 6 +++--- 5 files changed, 7 insertions(+), 8 deletions(-) diff --git a/drivers/staging/rtl8712/drv_types.h b/drivers/staging/rtl8712/drv_types.h index 0168745..3d0a98b 100644 --- a/drivers/staging/rtl8712/drv_types.h +++ b/drivers/staging/rtl8712/drv_types.h @@ -173,7 +173,7 @@ struct _adapter { struct net_device_stats stats; struct iw_statistics iwstats; int pid; /*process id from UI*/ - _workitem wkFilterRxFF0; + struct work_struct wkFilterRxFF0; u8 blnEnableRxFF0Filter; spinlock_t lockRxFF0Filter; const struct firmware *fw; diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index 43795e7..c80f006 100644 --- a/drivers/staging/rtl8712/osdep_service.h +++ b/drivers/staging/rtl8712/osdep_service.h @@ -50,7 +50,6 @@ struct__queue { #define _pkt struct sk_buff #define _buffer unsigned char #define thread_exit() complete_and_exit(NULL, 0) -#define _workitem struct work_struct #define _init_queue(pqueue)\ do {\ diff --git a/drivers/staging/rtl8712/rtl871x_led.h b/drivers/staging/rtl8712/rtl871x_led.h index 1a90c7f..eb61205 100644 --- a/drivers/staging/rtl8712/rtl871x_led.h +++ b/drivers/staging/rtl8712/rtl871x_led.h @@ -99,7 +99,7 @@ struct LED_871x { * either LED_ON or OFF.*/ struct timer_list BlinkTimer; /* Timer object for led blinking.*/ - _workitem BlinkWorkItem; /* Workitem used by BlinkTimer */ + struct work_struct BlinkWorkItem; /* Workitem used by BlinkTimer */ }; struct led_priv { diff --git a/drivers/staging/rtl8712/rtl871x_pwrctrl.h b/drivers/staging/rtl8712/rtl871x_pwrctrl.h index 70ff924f..0526ba0 100644 --- a/drivers/staging/rtl8712/rtl871x_pwrctrl.h +++ b/drivers/staging/rtl8712/rtl871x_pwrctrl.h @@ -107,8 +107,8 @@ struct pwrctrl_priv { uint ImrContent;/* used to store original imr. */ uint bSleep; /* sleep -> active is different from active -> sleep. */ - _workitem SetPSModeWorkItem; - _workitem rpwm_workitem; + struct work_struct SetPSModeWorkItem; + struct work_struct rpwm_workitem; struct timer_list rpwm_check_timer; u8 rpwm_retry; uintbSetPSModeWorkItemInProgress; diff --git a/drivers/staging/rtl8712/rtl871x_xmit.h b/drivers/staging/rtl8712/rtl871x_xmit.h index ee90698..a9633c3 100644 --- a/drivers/staging/rtl8712/rtl871x_xmit.h +++ b/drivers/staging/rtl8712/rtl871x_xmit.h @@ -233,9 +233,9 @@ struct xmit_priv { u8 hwxmit_entry; u8 txirp_cnt; struct tasklet_struct xmit_tasklet; - _workitem xmit_pipe4_reset_wi; - _workitem xmit_pipe6_reset_wi; - _workitem xmit_piped_reset_wi; + struct work_struct xmit_pipe4_reset_wi; + struct work_struct xmit_pipe6_reset_wi; + struct work_struct xmit_piped_reset_wi; /*per AC pending irp*/ int beq_cnt; int bkq_cnt; -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH next-20140704]: staging/rtl8821ae/base.c: sparse warning corrections
On Sun, Jul 06, 2014 at 12:01:11PM +0300, Sami Laine wrote: > From: Sami Laine > > Sparse warning corrections for: > > drivers/staging/rtl8821ae/base.c:1370:16: warning: symbol > 'rtl_make_smps_action' was not declared. Should it be static? > drivers/staging/rtl8821ae/base.c:1543:6: warning: symbol 'rtl_find_221_ie' > was not declared. Should it be static? > drivers/staging/rtl8821ae/base.c:1804:5: warning: symbol > 'rtl_core_module_init' was not declared. Should it be static? > drivers/staging/rtl8821ae/base.c:1820:6: warning: symbol > 'rtl_core_module_exit' was not declared. Should it be static? > > Signed-off-by: Sami Laine You obviously did not build the code with your patch applied, as it breaks the build in bad ways :( Please ALWAYS test your patches before sending them out... greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH next-20140704]: staging/rtl8821ae/debug.c: sparse warning correction
On Sun, Jul 06, 2014 at 12:05:53PM +0300, Sami Laine wrote: > From: Sami Laine > > Sparse warning correction: > > vers/staging/rtl8821ae/debug.c:80:23: warning: symbol 'proc_topdir' was > not declared. Should it be static? > > Signed-off-by: Sami Laine > --- > diff --git a/drivers/staging/rtl8821ae/debug.c > b/drivers/staging/rtl8821ae/debug > index 8aefbf1..e4a19ba 100644 > --- a/drivers/staging/rtl8821ae/debug.c > +++ b/drivers/staging/rtl8821ae/debug.c > @@ -77,7 +77,7 @@ void rtl_dbgp_flag_init(struct ieee80211_hw *hw) > /*Init Debug flag enable condition */ > } > > -struct proc_dir_entry *proc_topdir; > +static struct proc_dir_entry *proc_topdir; > static int rtl_proc_get_mac_0(struct seq_file *m, void *v) > { > struct ieee80211_hw *hw = m->private; This does not apply properly, and given the lack of testing of your other patch, I'm loath to try to fix it up by hand myself :( greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v3 1/4] staging: rtl8192u: Remove useless return statements.
On Wed, Jul 09, 2014 at 05:49:39PM +0530, sanjeev sharma wrote: > From: sanjeev sharma No "S" characters? And your 0/4 Subject: was really odd, please fix up and resend all of these. greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v4] staging: gdm72xx: move T_CAPABILITY definitions to hci.h
Signed-off-by: Michalis Pappas --- drivers/staging/gdm72xx/gdm_wimax.c | 11 +++ drivers/staging/gdm72xx/hci.h | 6 ++ 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/drivers/staging/gdm72xx/gdm_wimax.c b/drivers/staging/gdm72xx/gdm_wimax.c index 0f71d41..1693cc0 100644 --- a/drivers/staging/gdm72xx/gdm_wimax.c +++ b/drivers/staging/gdm72xx/gdm_wimax.c @@ -591,11 +591,6 @@ static void gdm_wimax_prepare_device(struct net_device *dev) u32 val = 0; __be32 val_be32; - #define BIT_MULTI_CS0 - #define BIT_WIMAX 1 - #define BIT_QOS 2 - #define BIT_AGGREGATION 3 - /* GetInformation mac address */ len = 0; hci->cmd_evt = cpu_to_be16(WIMAX_GET_INFO); @@ -603,12 +598,12 @@ static void gdm_wimax_prepare_device(struct net_device *dev) hci->length = cpu_to_be16(len); gdm_wimax_send(nic, hci, HCI_HEADER_SIZE+len); - val = (1
[PATCH] staging: rtl8712: remove wrapper function thread_enter()
The inline function thread_enter() accepts a single ignored parameter and is just a wrapper for allow_signal(SIGTERM). Removed. Signed-off-by: James A Shackleford --- drivers/staging/rtl8712/osdep_service.h | 5 - drivers/staging/rtl8712/rtl8712_cmd.c | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/staging/rtl8712/osdep_service.h b/drivers/staging/rtl8712/osdep_service.h index c80f006..d7a357b 100644 --- a/drivers/staging/rtl8712/osdep_service.h +++ b/drivers/staging/rtl8712/osdep_service.h @@ -118,11 +118,6 @@ static inline unsigned char _cancel_timer_ex(struct timer_list *ptimer) return del_timer(ptimer); } -static inline void thread_enter(void *context) -{ - allow_signal(SIGTERM); -} - static inline void flush_signals_thread(void) { if (signal_pending(current)) diff --git a/drivers/staging/rtl8712/rtl8712_cmd.c b/drivers/staging/rtl8712/rtl8712_cmd.c index 6151977..ab0c7eb 100644 --- a/drivers/staging/rtl8712/rtl8712_cmd.c +++ b/drivers/staging/rtl8712/rtl8712_cmd.c @@ -326,7 +326,7 @@ int r8712_cmd_thread(void *context) struct _adapter *padapter = (struct _adapter *)context; struct cmd_priv*pcmdpriv = &(padapter->cmdpriv); - thread_enter(padapter); + allow_signal(SIGTERM); while (1) { if ((_down_sema(&(pcmdpriv->cmd_queue_sema))) == _FAIL) break; -- 1.9.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH next-20140704]: staging/rtl8821ae/base.c: sparse warning corrections
On Sun, Jul 6, 2014 at 5:01 AM, Sami Laine wrote: > From: Sami Laine > > Sparse warning corrections for: > > drivers/staging/rtl8821ae/base.c:1370:16: warning: symbol > 'rtl_make_smps_action' was not declared. Should it be static? > drivers/staging/rtl8821ae/base.c:1543:6: warning: symbol 'rtl_find_221_ie' > was not declared. Should it be static? > drivers/staging/rtl8821ae/base.c:1804:5: warning: symbol > 'rtl_core_module_init' was not declared. Should it be static? > drivers/staging/rtl8821ae/base.c:1820:6: warning: symbol > 'rtl_core_module_exit' was not declared. Should it be static? > > Signed-off-by: Sami Laine > --- > diff --git a/drivers/staging/rtl8821ae/base.c > b/drivers/staging/rtl8821ae/base.c > index 4a36da0..c2d0b18 100644 > --- a/drivers/staging/rtl8821ae/base.c > +++ b/drivers/staging/rtl8821ae/base.c > @@ -1367,7 +1367,7 @@ u8 *rtl_find_ie(u8 *data, unsigned int len, u8 ie) > > /* when we use 2 rx ants we send IEEE80211_SMPS_OFF */ > /* when we use 1 rx ant we send IEEE80211_SMPS_STATIC */ > -struct sk_buff *rtl_make_smps_action(struct ieee80211_hw *hw, > +static struct sk_buff *rtl_make_smps_action(struct ieee80211_hw *hw, > enum ieee80211_smps_mode smps, > u8 *da, u8 *bssid) > { > @@ -1540,7 +1540,7 @@ static bool rtl_chk_vendor_ouisub(struct ieee80211_hw > *hw, > return matched; > } > > -bool rtl_find_221_ie(struct ieee80211_hw *hw, u8 *data, > +static bool rtl_find_221_ie(struct ieee80211_hw *hw, u8 *data, > unsigned int len) > { > struct ieee80211_mgmt *mgmt = (void *)data; > @@ -1801,7 +1801,7 @@ MODULE_DESCRIPTION("Realtek 802.11n PCI wireless core"); > #endif > struct rtl_global_var global_var = {}; > > -int rtl_core_module_init(void) > +static int rtl_core_module_init(void) > { > if (rtl_rate_control_register()) > printk(KERN_DEBUG "rtl: Unable to register rtl_rc, use > default RC !!\n"); > @@ -1815,8 +1815,9 @@ int rtl_core_module_init(void) > > return 0; > } > +EXPORT_SYMBOL(rtl_core_module_init); Why are you adding this? Just declaring it static should be enough if you are not using this elsewhere. > > -void rtl_core_module_exit(void) > +static void rtl_core_module_exit(void) > { > /*RC*/ > rtl_rate_control_unregister(); > @@ -1824,6 +1825,7 @@ void rtl_core_module_exit(void) > /* add proc for debug */ > rtl_proc_remove_topdir(); > } > +EXPORT_SYMBOL(rtl_core_module_exit); same here. > > #if 0 > module_init(rtl_core_module_init); > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majord...@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- Andev ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH v2] staging: gdm72xx: reorder functions and remove forward declarations
Signed-off-by: Michalis Pappas --- drivers/staging/gdm72xx/gdm_sdio.c | 77 drivers/staging/gdm72xx/gdm_usb.c | 87 +- drivers/staging/gdm72xx/gdm_wimax.c | 179 +--- 3 files changed, 164 insertions(+), 179 deletions(-) diff --git a/drivers/staging/gdm72xx/gdm_sdio.c b/drivers/staging/gdm72xx/gdm_sdio.c index a903173..6a23bef 100644 --- a/drivers/staging/gdm72xx/gdm_sdio.c +++ b/drivers/staging/gdm72xx/gdm_sdio.c @@ -38,9 +38,6 @@ #define TX_HZ 2000 #define TX_INTERVAL(100/TX_HZ) -static int init_sdio(struct sdiowm_dev *sdev); -static void release_sdio(struct sdiowm_dev *sdev); - static struct sdio_tx *alloc_tx_struct(struct tx_cxt *tx) { struct sdio_tx *t = kzalloc(sizeof(*t), GFP_ATOMIC); @@ -124,6 +121,43 @@ static void put_rx_struct(struct rx_cxt *rx, struct sdio_rx *r) list_add_tail(&r->list, &rx->free_list); } +static void release_sdio(struct sdiowm_dev *sdev) +{ + struct tx_cxt *tx = &sdev->tx; + struct rx_cxt *rx = &sdev->rx; + struct sdio_tx *t, *t_next; + struct sdio_rx *r, *r_next; + + kfree(tx->sdu_buf); + + list_for_each_entry_safe(t, t_next, &tx->free_list, list) { + list_del(&t->list); + free_tx_struct(t); + } + + list_for_each_entry_safe(t, t_next, &tx->sdu_list, list) { + list_del(&t->list); + free_tx_struct(t); + } + + list_for_each_entry_safe(t, t_next, &tx->hci_list, list) { + list_del(&t->list); + free_tx_struct(t); + } + + kfree(rx->rx_buf); + + list_for_each_entry_safe(r, r_next, &rx->free_list, list) { + list_del(&r->list); + free_rx_struct(r); + } + + list_for_each_entry_safe(r, r_next, &rx->req_list, list) { + list_del(&r->list); + free_rx_struct(r); + } +} + static int init_sdio(struct sdiowm_dev *sdev) { int ret = 0, i; @@ -176,43 +210,6 @@ fail: return ret; } -static void release_sdio(struct sdiowm_dev *sdev) -{ - struct tx_cxt *tx = &sdev->tx; - struct rx_cxt *rx = &sdev->rx; - struct sdio_tx *t, *t_next; - struct sdio_rx *r, *r_next; - - kfree(tx->sdu_buf); - - list_for_each_entry_safe(t, t_next, &tx->free_list, list) { - list_del(&t->list); - free_tx_struct(t); - } - - list_for_each_entry_safe(t, t_next, &tx->sdu_list, list) { - list_del(&t->list); - free_tx_struct(t); - } - - list_for_each_entry_safe(t, t_next, &tx->hci_list, list) { - list_del(&t->list); - free_tx_struct(t); - } - - kfree(rx->rx_buf); - - list_for_each_entry_safe(r, r_next, &rx->free_list, list) { - list_del(&r->list); - free_rx_struct(r); - } - - list_for_each_entry_safe(r, r_next, &rx->req_list, list) { - list_del(&r->list); - free_rx_struct(r); - } -} - static void send_sdio_pkt(struct sdio_func *func, u8 *data, int len) { int n, blocks, ret, remain; diff --git a/drivers/staging/gdm72xx/gdm_usb.c b/drivers/staging/gdm72xx/gdm_usb.c index 5a6b86a..45b3dda 100644 --- a/drivers/staging/gdm72xx/gdm_usb.c +++ b/drivers/staging/gdm72xx/gdm_usb.c @@ -49,9 +49,6 @@ static int k_mode_stop; #endif /* CONFIG_WIMAX_GDM72XX_K_MODE */ -static int init_usb(struct usbwm_dev *udev); -static void release_usb(struct usbwm_dev *udev); - static struct usb_tx *alloc_tx_struct(struct tx_cxt *tx) { struct usb_tx *t = kzalloc(sizeof(*t), GFP_ATOMIC); @@ -160,6 +157,48 @@ static void put_rx_struct(struct rx_cxt *rx, struct usb_rx *r) list_move(&r->list, &rx->free_list); } +static void release_usb(struct usbwm_dev *udev) +{ + struct tx_cxt *tx = &udev->tx; + struct rx_cxt *rx = &udev->rx; + struct usb_tx *t, *t_next; + struct usb_rx *r, *r_next; + unsigned long flags; + + spin_lock_irqsave(&tx->lock, flags); + + list_for_each_entry_safe(t, t_next, &tx->sdu_list, list) { + list_del(&t->list); + free_tx_struct(t); + } + + list_for_each_entry_safe(t, t_next, &tx->hci_list, list) { + list_del(&t->list); + free_tx_struct(t); + } + + list_for_each_entry_safe(t, t_next, &tx->free_list, list) { + list_del(&t->list); + free_tx_struct(t); + } + + spin_unlock_irqrestore(&tx->lock, flags); + + spin_lock_irqsave(&rx->lock, flags); + + list_for_each_entry_safe(r, r_next, &rx->free_list, list) { + list_del(&r->list); + free_rx_struct(r); + } + + list_for_each_entry_safe(r, r_next, &rx->used_list, list) { + list_del(&r->list); + free_rx_struct(r); + } + +
RE: [PATCH v3] hyperv: Add netpoll support
> -Original Message- > From: Richard Weinberger [mailto:rich...@nod.at] > Sent: Wednesday, July 9, 2014 10:24 AM > To: KY Srinivasan; Haiyang Zhang > Cc: sergei.shtyl...@cogentembedded.com; rom...@fr.zoreil.com; > de...@linuxdriverproject.org; net...@vger.kernel.org; linux- > ker...@vger.kernel.org; Richard Weinberger > Subject: [PATCH v3] hyperv: Add netpoll support > > In order to have at least a netconsole to debug kernel issues on > Windows Azure this patch implements netpoll support. > Sending packets is easy, netvsc_start_xmit() does already everything > needed. > > Signed-off-by: Richard Weinberger Acked-by: Haiyang Zhang Thanks. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: gdm72xx: conditionally compile debug code
On 07/09/2014 07:51 PM, Greg KH wrote: > On Tue, Jul 01, 2014 at 02:00:15PM +0100, Michalis Pappas wrote: >> Signed-off-by: Michalis Pappas >> --- >> drivers/staging/gdm72xx/gdm_qos.c | 2 ++ >> drivers/staging/gdm72xx/gdm_sdio.c | 7 +++ >> drivers/staging/gdm72xx/gdm_usb.c | 7 +++ >> drivers/staging/gdm72xx/gdm_wimax.c | 6 ++ >> drivers/staging/gdm72xx/gdm_wimax.h | 2 ++ >> 5 files changed, 24 insertions(+) >> >> diff --git a/drivers/staging/gdm72xx/gdm_qos.c >> b/drivers/staging/gdm72xx/gdm_qos.c >> index b08c8e1..7900981 100644 >> --- a/drivers/staging/gdm72xx/gdm_qos.c >> +++ b/drivers/staging/gdm72xx/gdm_qos.c >> @@ -88,7 +88,9 @@ static void free_qos_entry_list(struct list_head >> *free_list) >> total_free++; >> } >> >> +#if defined(GDM72xx_DEBUG) >> pr_debug("%s: total_free_cnt=%d\n", __func__, total_free); >> +#endif > > Ick, no, never put #ifdef in .c code if you can help it. For stuff like > this, just rely on the dynamic debug core and use the pr_debug and > dev_dbg() calls, like the driver is doing, so all should be fine. > But how about those cases where debug code consists of more than a simple call to pr_debug() / dev_dbg()? For instance consider dump_eth_packet(), defined in gdm_wimax.c. This function is called every time a packet is received or transmitted, and calls other helper functions too (get_protocol_name(), get_ip_protocol_name(), get_port_name()). Doesn't all this debug logic provide an overhead to the tx / rx functions? ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
> -Original Message- > From: Christoph Hellwig [mailto:h...@infradead.org] > Sent: Wednesday, July 9, 2014 1:43 AM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16 > > On Tue, Jul 08, 2014 at 05:46:48PM -0700, K. Y. Srinivasan wrote: > > Host does not handle WRITE_SAME_16; filter this command out. This > > patch is required to handle large devices (greater than 2 TB disks). > > Storvsc already sets the no_write_same flag, where is the command coming > from? In spite of this flag, I see WRITE_SAME_16 being issued when I format a device bigger than 2 TB; I tried both xfs and ext4. Windows hosts currently do not handle unsupported commands correctly - The information returned is not sufficient to effect recovery in the Linux guest. While this may be addressed in future hosts, this patch fixes the problem. K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
On Wed, 2014-07-09 at 19:52 +, KY Srinivasan wrote: > > > -Original Message- > > From: Christoph Hellwig [mailto:h...@infradead.org] > > Sent: Wednesday, July 9, 2014 1:43 AM > > To: KY Srinivasan > > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16 > > > > On Tue, Jul 08, 2014 at 05:46:48PM -0700, K. Y. Srinivasan wrote: > > > Host does not handle WRITE_SAME_16; filter this command out. This > > > patch is required to handle large devices (greater than 2 TB disks). > > > > Storvsc already sets the no_write_same flag, where is the command coming > > from? > > In spite of this flag, I see WRITE_SAME_16 being issued when I format a > device bigger than 2 TB; > I tried both xfs and ext4. Windows hosts currently do not handle unsupported > commands correctly - > The information returned is not sufficient to effect recovery in the Linux > guest. While this may be addressed in > future hosts, this patch fixes the problem. What Christoph means is that this looks like a bug somewhere in SCSI itself. That means we need to find it and kill it, not add workarounds to every driver that sets no_write_same ... James ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 3/8] Drivers: scsi: storvsc: Fix a bug in handling VMBUS protocol version
> -Original Message- > From: Christoph Hellwig [mailto:h...@infradead.org] > Sent: Wednesday, July 9, 2014 1:42 AM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > Subject: Re: [PATCH 3/8] Drivers: scsi: storvsc: Fix a bug in handling VMBUS > protocol version > > > + if ((vmbus_proto_version == VERSION_WS2008) || > > +(vmbus_proto_version == VERSION_WIN7)) { > > This has superflous braces and doesn't use proper Linux indentation. > > But I think simply using a switch here might be cleaner anyway. I will do as you have suggested. K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 2/8] Drivers: scsi: storvsc: Filter commands based on the storage protocol version
> -Original Message- > From: Christoph Hellwig [mailto:h...@infradead.org] > Sent: Wednesday, July 9, 2014 1:41 AM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > Subject: Re: [PATCH 2/8] Drivers: scsi: storvsc: Filter commands based on the > storage protocol version > > On Tue, Jul 08, 2014 at 05:46:46PM -0700, K. Y. Srinivasan wrote: > > Going forward it is possible that some of the commands that are not > > currently implemented will be implemented on future Windows hosts. > > Make command filtering depend on the host version. > > > + if (vmstor_current_major <= VMSTOR_WIN8_MAJOR) { > > + /* > > +* On legacy hosts filter unimplemented commands. > > +*/ > > + if (!storvsc_scsi_cmd_ok(scmnd)) { > > + scmnd->scsi_done(scmnd); > > + return 0; > > + } > > So post-Win8 versions don't need command filering as they can properly > reject commands they don't understand? If that's the case please state it in > the patch description. I will add the comments you have suggested. K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host
> -Original Message- > From: Christoph Hellwig [mailto:h...@infradead.org] > Sent: Wednesday, July 9, 2014 1:40 AM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > Subject: Re: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect > the > values on the host > > On Tue, Jul 08, 2014 at 05:46:45PM -0700, K. Y. Srinivasan wrote: > > + * In Hyper-V, each port/path/target maps to 1 scsi host adapter. > > Does it still? The STORVSC_FC_MAX_TARGETS define suggests otherwise. I will fix the comments and get rid of unnecessary comments. > > > - .cmd_per_lun = 1, > > + .cmd_per_lun = 255, > > This looks like an unrelated change. I will have a separate patch for this. > > > + /* max # of devices per target */ > > + host->max_lun = STORVSC_FC_MAX_LUNS_PER_TARGET; > > + /* max # of targets per channel */ > > + host->max_id = STORVSC_FC_MAX_TARGETS; > > + /* max # of channels */ > > + host->max_channel = STORVSC_FC_MAX_CHANNELS - 1; > > I don't think these comments add any value.. I will get rid of the comments. > > Also any reason you use off by one defines for max_channel, but not the > others? No particular reason; I will clean this up. Thanks Christoph for the detailed comments. I will re-spin these after I address your comments. Regards, K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: gdm72xx: conditionally compile debug code
On Wed, Jul 09, 2014 at 08:52:07PM +0100, Michalis Pappas wrote: > On 07/09/2014 07:51 PM, Greg KH wrote: > > On Tue, Jul 01, 2014 at 02:00:15PM +0100, Michalis Pappas wrote: > >> Signed-off-by: Michalis Pappas > >> --- > >> drivers/staging/gdm72xx/gdm_qos.c | 2 ++ > >> drivers/staging/gdm72xx/gdm_sdio.c | 7 +++ > >> drivers/staging/gdm72xx/gdm_usb.c | 7 +++ > >> drivers/staging/gdm72xx/gdm_wimax.c | 6 ++ > >> drivers/staging/gdm72xx/gdm_wimax.h | 2 ++ > >> 5 files changed, 24 insertions(+) > >> > >> diff --git a/drivers/staging/gdm72xx/gdm_qos.c > >> b/drivers/staging/gdm72xx/gdm_qos.c > >> index b08c8e1..7900981 100644 > >> --- a/drivers/staging/gdm72xx/gdm_qos.c > >> +++ b/drivers/staging/gdm72xx/gdm_qos.c > >> @@ -88,7 +88,9 @@ static void free_qos_entry_list(struct list_head > >> *free_list) > >>total_free++; > >>} > >> > >> + #if defined(GDM72xx_DEBUG) > >>pr_debug("%s: total_free_cnt=%d\n", __func__, total_free); > >> + #endif > > > > Ick, no, never put #ifdef in .c code if you can help it. For stuff like > > this, just rely on the dynamic debug core and use the pr_debug and > > dev_dbg() calls, like the driver is doing, so all should be fine. > > > > But how about those cases where debug code consists of more than a > simple call to pr_debug() / dev_dbg()? Then that code is wrong :) > For instance consider dump_eth_packet(), defined in gdm_wimax.c. This > function is called every time a packet is received or transmitted, and > calls other helper functions too (get_protocol_name(), > get_ip_protocol_name(), get_port_name()). > > Doesn't all this debug logic provide an overhead to the tx / rx functions? Yes, so much so it doesn't make sense to even have that type of function, right? greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 2/2] staging: unisys: added virtpci info entry
This patch adds the virtpci debugfs directory and the info entry inside of it. Signed-off-by: Erik Arfvidson --- drivers/staging/unisys/virtpci/virtpci.c | 123 ++- 1 file changed, 119 insertions(+), 4 deletions(-) diff --git a/drivers/staging/unisys/virtpci/virtpci.c b/drivers/staging/unisys/virtpci/virtpci.c index 7d840b0..68fbe85 100644 --- a/drivers/staging/unisys/virtpci/virtpci.c +++ b/drivers/staging/unisys/virtpci/virtpci.c @@ -37,6 +37,7 @@ #include #include #include "version.h" + #include #include "guestlinuxdebug.h" #include "timskmodutils.h" @@ -100,6 +101,12 @@ static int virtpci_device_resume(struct device *dev); static int virtpci_device_probe(struct device *dev); static int virtpci_device_remove(struct device *dev); +static ssize_t info_debugfs_read(struct file *file, char __user *buf, + size_t len, loff_t *offset); + +static const struct file_operations debugfs_info_fops = { + .read = info_debugfs_read, +}; /*/ /* Globals */ @@ -139,7 +146,19 @@ static DEFINE_RWLOCK(VpcidevListLock); /* filled in with info about this driver, wrt it servicing client busses */ static ULTRA_VBUS_DEVICEINFO Bus_DriverInfo; - +/*/ +/* DebugFS entries */ +/*/ +/* dentry is used to create the debugfs entry directory + * for virtpci + */ +static struct dentry *virtpci_debugfs_dir; +static struct dentry *info_debugfs_entry; +/* info_debugfs_entry is used to tell virtpci to display current info + * kept in the driver + */ +#define DIR_DEBUGFS_ENTRY "virtpci" +#define INFO_DEBUGFS_ENTRY_FN "info" struct virtpci_busdev { struct device virtpci_bus_device; @@ -588,7 +607,8 @@ static void delete_all(void) /* deletes all vnics or vhbas * returns 0 failure, 1 success, */ -static int delete_all_virt(VIRTPCI_DEV_TYPE devtype, struct del_vbus_guestpart *delparams) +static int delete_all_virt(VIRTPCI_DEV_TYPE devtype, + struct del_vbus_guestpart *delparams) { int i; unsigned char busid[BUS_ID_SIZE]; @@ -1375,6 +1395,97 @@ void virtpci_unregister_driver(struct virtpci_driver *drv) DBGINF("Leaving\n"); } EXPORT_SYMBOL_GPL(virtpci_unregister_driver); +/*/ +/* debugfs filesystem functions */ +/*/ +struct print_vbus_info { + int *length; + char *buf; +}; + +static int print_vbus(struct device *vbus, void *data) +{ + struct print_vbus_info *p = (struct print_vbus_info *)data; + + *p->length += sprintf(p->buf + *p->length, "bus_id:%s\n", + dev_name(vbus)); + return 0; /* no error */ +} + +static ssize_t info_debugfs_read(struct file *file, char __user *buf, + size_t len, loff_t *offset) +{ + int str_pos = 0; + struct virtpci_dev *tmpvpcidev; + unsigned long flags; + struct print_vbus_info printparam; + char *vbuf; + loff_t pos = *offset; + + if (pos < 0) + return -EINVAL; + + if (pos > 0 || !len) + return 0; + + vbuf = kzalloc(len, GFP_KERNEL); + if (!vbuf) + return -ENOMEM; + + + str_pos += snprintf(vbuf + str_pos, len - str_pos, + "\n Virtual PCI Bus devices\n"); + printparam.length = &str_pos; + printparam.buf = vbuf; + if (bus_for_each_dev(&virtpci_bus_type, NULL, +(void *) &printparam, print_vbus)) + LOGERR("Failed to find bus\n"); + + str_pos += snprintf(vbuf + str_pos, len - str_pos, + "\n Virtual PCI devices\n"); + read_lock_irqsave(&VpcidevListLock, flags); + tmpvpcidev = VpcidevListHead; + while (tmpvpcidev) { + if (tmpvpcidev->devtype == VIRTHBA_TYPE) { + str_pos += snprintf(vbuf + str_pos, len - str_pos, + "[%d:%d] VHba:%08x:%08x max-config:%d-%d-%d-%d", + tmpvpcidev->busNo, tmpvpcidev->deviceNo, + tmpvpcidev->scsi.wwnn.wwnn1, + tmpvpcidev->scsi.wwnn.wwnn2, + tmpvpcidev->scsi.max.max_channel, + tmpvpcidev->scsi.max.max_id, + tmpvpcidev->scsi.max.max_lun, + tmpvpcidev->scsi.max.cmd_per_lun); + } else { + str_pos += snprintf(vbuf + str_pos, len - str_pos, + "[%d:%d] VNic:%02x:%02x:%02
Re: [PATCH 2/2] staging: unisys: added virtpci info entry
On Wed, Jul 09, 2014 at 04:22:43PM -0400, Erik Arfvidson wrote: > This patch adds the virtpci debugfs directory and the info entry > inside of it. > > Signed-off-by: Erik Arfvidson > --- > drivers/staging/unisys/virtpci/virtpci.c | 123 > ++- > 1 file changed, 119 insertions(+), 4 deletions(-) > > diff --git a/drivers/staging/unisys/virtpci/virtpci.c > b/drivers/staging/unisys/virtpci/virtpci.c > index 7d840b0..68fbe85 100644 > --- a/drivers/staging/unisys/virtpci/virtpci.c > +++ b/drivers/staging/unisys/virtpci/virtpci.c > @@ -37,6 +37,7 @@ > #include > #include > #include "version.h" > + #include Does that line look correct? ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 2/2] staging: unisys: added virtpci info entry
On Wed, Jul 09, 2014 at 04:22:43PM -0400, Erik Arfvidson wrote: > @@ -1426,7 +1537,10 @@ static int __init virtpci_mod_init(void) > > LOGINF("successfully registered virtpci_ctrlchan_func (0x%p) as > callback.\n", >(void *) &virtpci_ctrlchan_func); > - > + /*create debugfs directory*/ ' ' characters please. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: Status of RMI4 drivers?
Hi Kristina, Once again, my apologies for top-posting. The synaptics-rmi4 driver is intended to work with any RMI4 compliant sensors (subject to platform specific tweaks), and this should handle any of the sensors currently handled by the staging drivers or other drivers based off of the staging code. Chris From: Kristina Martšenko [kristina.martse...@gmail.com] Sent: Tuesday, July 08, 2014 3:12 AM To: Dmitry Torokhov; Christopher Heiny Cc: Greg KH; Alan Cox; de...@driverdev.osuosl.org; Ramesh Agarwal; Linus Walleij Subject: Re: Status of RMI4 drivers? On 06/07/14 21:12, Dmitry Torokhov wrote: > On Sat, Jul 5, 2014 at 8:39 PM, Greg KH wrote: >> On Sat, Jul 05, 2014 at 04:37:37PM +0100, Alan Cox wrote: >>> On Fri, 2014-07-04 at 21:48 +0300, Kristina Martšenko wrote: Hi, I'm going over some "older" drivers in the staging tree and wanted to ask about cptm1217 and ste_rmi4. They've been in staging for three and a half years now, waiting for the upstream Synaptics RMI4 drivers. From what I understand, the RMI4 development is happening in the synaptics-rmi4 branch of Dmitry's git tree. Does anyone have any idea when the RMI4 code might be "ready" and get merged properly? How is that going? >>> >>> I'd be quite happy to move cptm1217 out of staging, however its now been >>> there so many years waiting the rumoured RMI4 driver that I don't have >>> hardware to do any testing on it, so it would need to be a straight >>> move. >> >> Kristina found a driver here: >> >> https://git.kernel.org/cgit/linux/kernel/git/dtor/input.git/log/?h=synaptics-rmi4 >> >> Dmitry, what's the status of ever getting that code merged into the >> tree? >> > > I was supposed to uprev the driver to the latest kernel and start > merging it, unfortunately last month and a half was quite a mess. > Hopefully now I should have more time since I can do bunch of this > work during normal hours. Good to know, thanks. So what happens to the staging drivers once you merge the driver? Will their devices be supported by the new driver or will someone have to merge their functionality into the new driver (and test it)? Kristina ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: Status of RMI4 drivers?
Sorry for top-posting on this - I'm travelling and don't have access to a proper mail client. My work on synaptics-rmi4 has been on hold pending the uprev and some outstanding patches being either rejected or accepted. Dmitry - if there's something that can be done on our end to move things forward, let me know. I'll be back in the office on the 14th, and can give any issues that need to be addressed top priority. Thanks, Chris From: Dmitry Torokhov [dmitry.torok...@gmail.com] Sent: Sunday, July 06, 2014 11:12 AM To: Greg KH Cc: Alan Cox; Kristina Martšenko; de...@driverdev.osuosl.org; Ramesh Agarwal; Linus Walleij; Christopher Heiny; Naveen Kumar Gaddipati Subject: Re: Status of RMI4 drivers? On Sat, Jul 5, 2014 at 8:39 PM, Greg KH wrote: > On Sat, Jul 05, 2014 at 04:37:37PM +0100, Alan Cox wrote: >> On Fri, 2014-07-04 at 21:48 +0300, Kristina Martšenko wrote: >> > Hi, >> > >> > I'm going over some "older" drivers in the staging tree and wanted to >> > ask about cptm1217 and ste_rmi4. They've been in staging for three and a >> > half years now, waiting for the upstream Synaptics RMI4 drivers. From >> > what I understand, the RMI4 development is happening in the >> > synaptics-rmi4 branch of Dmitry's git tree. Does anyone have any idea >> > when the RMI4 code might be "ready" and get merged properly? How is that >> > going? >> >> I'd be quite happy to move cptm1217 out of staging, however its now been >> there so many years waiting the rumoured RMI4 driver that I don't have >> hardware to do any testing on it, so it would need to be a straight >> move. > > Kristina found a driver here: > > https://git.kernel.org/cgit/linux/kernel/git/dtor/input.git/log/?h=synaptics-rmi4 > > Dmitry, what's the status of ever getting that code merged into the > tree? > I was supposed to uprev the driver to the latest kernel and start merging it, unfortunately last month and a half was quite a mess. Hopefully now I should have more time since I can do bunch of this work during normal hours. -- Dmitry ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
> -Original Message- > From: James Bottomley [mailto:jbottom...@parallels.com] > Sent: Wednesday, July 9, 2014 12:57 PM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; h...@infradead.org; > de...@linuxdriverproject.org; a...@canonical.com; sta...@vger.kernel.org; > linux-s...@vger.kernel.org; oher...@suse.com; jasow...@redhat.com > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16 > > On Wed, 2014-07-09 at 19:52 +, KY Srinivasan wrote: > > > > > -Original Message- > > > From: Christoph Hellwig [mailto:h...@infradead.org] > > > Sent: Wednesday, July 9, 2014 1:43 AM > > > To: KY Srinivasan > > > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > > > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > > > a...@canonical.com; linux-s...@vger.kernel.org; > > > sta...@vger.kernel.org > > > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter > > > WRITE_SAME_16 > > > > > > On Tue, Jul 08, 2014 at 05:46:48PM -0700, K. Y. Srinivasan wrote: > > > > Host does not handle WRITE_SAME_16; filter this command out. This > > > > patch is required to handle large devices (greater than 2 TB disks). > > > > > > Storvsc already sets the no_write_same flag, where is the command > > > coming from? > > > > In spite of this flag, I see WRITE_SAME_16 being issued when I format > > a device bigger than 2 TB; I tried both xfs and ext4. Windows hosts > > currently do not handle unsupported commands correctly - The > > information returned is not sufficient to effect recovery in the Linux > > guest. > While this may be addressed in future hosts, this patch fixes the problem. > > What Christoph means is that this looks like a bug somewhere in SCSI itself. > That means we need to find it and kill it, not add workarounds to every driver > that sets no_write_same ... James, I will try to isolate this issue in the SCSI stack. If it is ok with you guys, I would still want to filter WRITE_SAME_16 (as we currently do WRITE_SAME) in our driver since this would address the problem for a large number of customers on our platform. Regards, K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
On Wed, 2014-07-09 at 21:14 +, KY Srinivasan wrote: > > > -Original Message- > > From: James Bottomley [mailto:jbottom...@parallels.com] > > Sent: Wednesday, July 9, 2014 12:57 PM > > To: KY Srinivasan > > Cc: linux-ker...@vger.kernel.org; h...@infradead.org; > > de...@linuxdriverproject.org; a...@canonical.com; sta...@vger.kernel.org; > > linux-s...@vger.kernel.org; oher...@suse.com; jasow...@redhat.com > > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16 > > > > On Wed, 2014-07-09 at 19:52 +, KY Srinivasan wrote: > > > > > > > -Original Message- > > > > From: Christoph Hellwig [mailto:h...@infradead.org] > > > > Sent: Wednesday, July 9, 2014 1:43 AM > > > > To: KY Srinivasan > > > > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > > > > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > > > > a...@canonical.com; linux-s...@vger.kernel.org; > > > > sta...@vger.kernel.org > > > > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter > > > > WRITE_SAME_16 > > > > > > > > On Tue, Jul 08, 2014 at 05:46:48PM -0700, K. Y. Srinivasan wrote: > > > > > Host does not handle WRITE_SAME_16; filter this command out. This > > > > > patch is required to handle large devices (greater than 2 TB disks). > > > > > > > > Storvsc already sets the no_write_same flag, where is the command > > > > coming from? > > > > > > In spite of this flag, I see WRITE_SAME_16 being issued when I format > > > a device bigger than 2 TB; I tried both xfs and ext4. Windows hosts > > > currently do not handle unsupported commands correctly - The > > > information returned is not sufficient to effect recovery in the Linux > > > guest. > > While this may be addressed in future hosts, this patch fixes the problem. > > > > What Christoph means is that this looks like a bug somewhere in SCSI itself. > > That means we need to find it and kill it, not add workarounds to every > > driver > > that sets no_write_same ... > > James, > > I will try to isolate this issue in the SCSI stack. If it is ok with you > guys, I would still want to filter WRITE_SAME_16 > (as we currently do WRITE_SAME) in our driver since this would address the > problem for a large number of > customers on our platform. If we fix it at source, why would there be any need to filter? That's the reason the no_write_same flag was introduced. If we can find and fix the bug, it can go back into the stable trees as a bug fix, hence nothing should ever emit write_same(10 or 16) and additional driver code is redundant (and counter productive, since if this ever breaks again you're our best canary). This looks like it might be the problem but Martin should confirm (I think the problem comes to us from the RC16 code which unconditionally sets WS16). James --- diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index 6825eda..8353a4c 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c @@ -634,6 +634,23 @@ static void sd_config_discard(struct scsi_disk *sdkp, unsigned int mode) max(sdkp->physical_block_size, sdkp->unmap_granularity * logical_block_size); + if (sdkp->device->host->no_write_same) { + switch(mode) { + + case SD_LBP_WS16: + case SD_LBP_WS10: + case SD_LBP_ZERO: + /* +* filter out all the WRITE SAME modes and map them +* directly to UNMAP +*/ + mode = SD_LBP_UNMAP; + /* fall through */ + default: + /* everything else is OK */ + break; + } + } sdkp->provisioning_mode = mode; switch (mode) { ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16
> -Original Message- > From: James Bottomley [mailto:jbottom...@parallels.com] > Sent: Wednesday, July 9, 2014 3:27 PM > To: KY Srinivasan > Cc: linux-ker...@vger.kernel.org; m...@mkp.net; h...@infradead.org; > de...@linuxdriverproject.org; a...@canonical.com; sta...@vger.kernel.org; > linux-s...@vger.kernel.org; oher...@suse.com; jasow...@redhat.com > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter WRITE_SAME_16 > > On Wed, 2014-07-09 at 21:14 +, KY Srinivasan wrote: > > > > > -Original Message- > > > From: James Bottomley [mailto:jbottom...@parallels.com] > > > Sent: Wednesday, July 9, 2014 12:57 PM > > > To: KY Srinivasan > > > Cc: linux-ker...@vger.kernel.org; h...@infradead.org; > > > de...@linuxdriverproject.org; a...@canonical.com; > > > sta...@vger.kernel.org; linux-s...@vger.kernel.org; > > > oher...@suse.com; jasow...@redhat.com > > > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter > > > WRITE_SAME_16 > > > > > > On Wed, 2014-07-09 at 19:52 +, KY Srinivasan wrote: > > > > > > > > > -Original Message- > > > > > From: Christoph Hellwig [mailto:h...@infradead.org] > > > > > Sent: Wednesday, July 9, 2014 1:43 AM > > > > > To: KY Srinivasan > > > > > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > > > > > oher...@suse.com; jbottom...@parallels.com; > jasow...@redhat.com; > > > > > a...@canonical.com; linux-s...@vger.kernel.org; > > > > > sta...@vger.kernel.org > > > > > Subject: Re: [PATCH 4/8] Drivers: scsi: storvsc: Filter > > > > > WRITE_SAME_16 > > > > > > > > > > On Tue, Jul 08, 2014 at 05:46:48PM -0700, K. Y. Srinivasan wrote: > > > > > > Host does not handle WRITE_SAME_16; filter this command out. > > > > > > This patch is required to handle large devices (greater than 2 TB > disks). > > > > > > > > > > Storvsc already sets the no_write_same flag, where is the > > > > > command coming from? > > > > > > > > In spite of this flag, I see WRITE_SAME_16 being issued when I > > > > format a device bigger than 2 TB; I tried both xfs and ext4. > > > > Windows hosts currently do not handle unsupported commands > > > > correctly - The information returned is not sufficient to effect > > > > recovery > in the Linux guest. > > > While this may be addressed in future hosts, this patch fixes the problem. > > > > > > What Christoph means is that this looks like a bug somewhere in SCSI > itself. > > > That means we need to find it and kill it, not add workarounds to > > > every driver that sets no_write_same ... > > > > James, > > > > I will try to isolate this issue in the SCSI stack. If it is ok with > > you guys, I would still want to filter WRITE_SAME_16 (as we currently > > do WRITE_SAME) in our driver since this would address the problem for a > large number of customers on our platform. > > If we fix it at source, why would there be any need to filter? That's the > reason the no_write_same flag was introduced. If we can find and fix the > bug, it can go back into the stable trees as a bug fix, hence nothing should > ever emit write_same(10 or 16) and additional driver code is redundant (and > counter productive, since if this ever breaks again you're our best canary). > > This looks like it might be the problem but Martin should confirm (I think the > problem comes to us from the RC16 code which unconditionally sets WS16). Ok; I am concerned about older kernels that do not have no_write_same flag. I suppose I can work directly with these Distros and give them a choice: either implement the no_write_same flag or filter the command in our driver. I will not include this patch when I resubmit this patch-set. Thanks, K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH] staging: dgap: removes redundant null check and change paramter for dgap_maxcps_room()
Hi, 2014-07-10 4:02 GMT+09:00 Greg KH : > On Mon, Jul 07, 2014 at 10:27:54AM +0900, Daeseok Youn wrote: >> Null checks for tty, un and ch are already done by caller, >> so replace parameter "tty" with "ch" and "un". >> >> And also use a pointer for returning new bytes_available instead of >> return variable. > > Why make that change? It's nicer to return a real value where ever > possible. That's more like other "room" functions in the tty layer. I was looking at use cases of dgap_maxcps_room() in dgap.c, byte_available variable in caller is reused for that. So I tried to change like this patch. > > Care to fix this up to just do the first change you made to the function > instead? OK, I will just change parameters for dgap_maxcps_room() and send again. thanks. regards, Daeseok Youn. > > thanks, > > greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
RE: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect the values on the host
> -Original Message- > From: driverdev-devel-boun...@linuxdriverproject.org [mailto:driverdev- > devel-boun...@linuxdriverproject.org] On Behalf Of KY Srinivasan > Sent: Wednesday, July 9, 2014 1:07 PM > To: Christoph Hellwig > Cc: linux-s...@vger.kernel.org; jasow...@redhat.com; linux- > ker...@vger.kernel.org; jbottom...@parallels.com; oher...@suse.com; > sta...@vger.kernel.org; a...@canonical.com; de...@linuxdriverproject.org > Subject: RE: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to reflect > the > values on the host > > > > > -Original Message- > > From: Christoph Hellwig [mailto:h...@infradead.org] > > Sent: Wednesday, July 9, 2014 1:40 AM > > To: KY Srinivasan > > Cc: linux-ker...@vger.kernel.org; de...@linuxdriverproject.org; > > oher...@suse.com; jbottom...@parallels.com; jasow...@redhat.com; > > a...@canonical.com; linux-s...@vger.kernel.org; sta...@vger.kernel.org > > Subject: Re: [PATCH 1/8] Drivers: scsi: storvsc: Change the limits to > > reflect the values on the host > > > > On Tue, Jul 08, 2014 at 05:46:45PM -0700, K. Y. Srinivasan wrote: > > > + * In Hyper-V, each port/path/target maps to 1 scsi host adapter. > > > > Does it still? The STORVSC_FC_MAX_TARGETS define suggests otherwise. > > I will fix the comments and get rid of unnecessary comments. > > > > > > - .cmd_per_lun = 1, > > > + .cmd_per_lun = 255, > > > > This looks like an unrelated change. > > I will have a separate patch for this. > > > > > + /* max # of devices per target */ > > > + host->max_lun = STORVSC_FC_MAX_LUNS_PER_TARGET; > > > + /* max # of targets per channel */ > > > + host->max_id = STORVSC_FC_MAX_TARGETS; > > > + /* max # of channels */ > > > + host->max_channel = STORVSC_FC_MAX_CHANNELS - 1; > > > > I don't think these comments add any value.. > > I will get rid of the comments. > > > > > Also any reason you use off by one defines for max_channel, but not > > the others? > > No particular reason; I will clean this up. On further examination max_channel is the maximum number of channels including channel 0. Thus the value set for max_channel is correct. max_id appears to indicate the limit. In scsi_scan_channel the loop control is (id < max_id) and hence the value I have here is correct. max_lun is also used like max_id to indicate the limit. In scsi_sequential_lun_scan() the loop control is (lun < max_dev_lun) and hence I think the value I have here is fine. Regards, K. Y ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH v3] hyperv: Add netpoll support
From: Richard Weinberger Date: Wed, 9 Jul 2014 16:23:59 +0200 > In order to have at least a netconsole to debug kernel issues on > Windows Azure this patch implements netpoll support. > Sending packets is easy, netvsc_start_xmit() does already everything > needed. > > Signed-off-by: Richard Weinberger Applied to net-next, thanks. ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/5] staging: rtl8188eu: Remove WEXT_PRIV private ioctl handlers
On Thu, Jul 10, 2014 at 12:34 AM, Greg KH wrote: > On Tue, Jul 01, 2014 at 10:35:09PM +0530, navin patidar wrote: >> Remove WEXT_PRIV (non-standard) ioctl handlers. >> >> Signed-off-by: navin patidar >> --- >> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 6335 >> +++- >> 1 file changed, 744 insertions(+), 5591 deletions(-) > > This patch fails to apply :( > > Can you refresh it, and resend this series? Please apply following patches. [PATCH v2 1/3] staging: rtl8188eu: re-use mac_pton() helper [PATCH v2 2/3] staging: rtl8188eu: substitute custom hex2bin() [PATCH v2 3/3] staging: rtl8188eu: re-use hex_to_bin() instead of custom code Then try again to apply my patches. regards, navin patidar ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/5] staging: rtl8188eu: Remove WEXT_PRIV private ioctl handlers
On Thu, Jul 10, 2014 at 06:24:21AM +0530, navin patidar wrote: > On Thu, Jul 10, 2014 at 12:34 AM, Greg KH wrote: > > On Tue, Jul 01, 2014 at 10:35:09PM +0530, navin patidar wrote: > >> Remove WEXT_PRIV (non-standard) ioctl handlers. > >> > >> Signed-off-by: navin patidar > >> --- > >> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 6335 > >> +++- > >> 1 file changed, 744 insertions(+), 5591 deletions(-) > > > > This patch fails to apply :( > > > > Can you refresh it, and resend this series? > > Please apply following patches. > > [PATCH v2 1/3] staging: rtl8188eu: re-use mac_pton() helper > [PATCH v2 2/3] staging: rtl8188eu: substitute custom hex2bin() > [PATCH v2 3/3] staging: rtl8188eu: re-use hex_to_bin() instead of custom code > > Then try again to apply my patches. I don't have those, sorry, my patch queue for staging patches are now empty as of everything sent up to yesterday. Please resend what you want me to apply, in the order in which you want me to apply it. thanks, greg k-h ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/5] staging: rtl8188eu: Remove WEXT_PRIV private ioctl handlers
On Thu, Jul 10, 2014 at 6:29 AM, Greg KH wrote: > On Thu, Jul 10, 2014 at 06:24:21AM +0530, navin patidar wrote: >> On Thu, Jul 10, 2014 at 12:34 AM, Greg KH wrote: >> > On Tue, Jul 01, 2014 at 10:35:09PM +0530, navin patidar wrote: >> >> Remove WEXT_PRIV (non-standard) ioctl handlers. >> >> >> >> Signed-off-by: navin patidar >> >> --- >> >> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 6335 >> >> +++- >> >> 1 file changed, 744 insertions(+), 5591 deletions(-) >> > >> > This patch fails to apply :( >> > >> > Can you refresh it, and resend this series? >> >> Please apply following patches. >> >> [PATCH v2 1/3] staging: rtl8188eu: re-use mac_pton() helper >> [PATCH v2 2/3] staging: rtl8188eu: substitute custom hex2bin() >> [PATCH v2 3/3] staging: rtl8188eu: re-use hex_to_bin() instead of custom code >> >> Then try again to apply my patches. > > I don't have those, sorry, my patch queue for staging patches are now > empty as of everything sent up to yesterday. Please resend what you > want me to apply, in the order in which you want me to apply it. Is it okay if i send you a single patch set having my three patch set and Andy Shevchenko's patches ? regards, navin patidar ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
Re: [PATCH 1/5] staging: rtl8188eu: Remove WEXT_PRIV private ioctl handlers
On Thu, Jul 10, 2014 at 06:56:39AM +0530, navin patidar wrote: > On Thu, Jul 10, 2014 at 6:29 AM, Greg KH wrote: > > On Thu, Jul 10, 2014 at 06:24:21AM +0530, navin patidar wrote: > >> On Thu, Jul 10, 2014 at 12:34 AM, Greg KH > >> wrote: > >> > On Tue, Jul 01, 2014 at 10:35:09PM +0530, navin patidar wrote: > >> >> Remove WEXT_PRIV (non-standard) ioctl handlers. > >> >> > >> >> Signed-off-by: navin patidar > >> >> --- > >> >> drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 6335 > >> >> +++- > >> >> 1 file changed, 744 insertions(+), 5591 deletions(-) > >> > > >> > This patch fails to apply :( > >> > > >> > Can you refresh it, and resend this series? > >> > >> Please apply following patches. > >> > >> [PATCH v2 1/3] staging: rtl8188eu: re-use mac_pton() helper > >> [PATCH v2 2/3] staging: rtl8188eu: substitute custom hex2bin() > >> [PATCH v2 3/3] staging: rtl8188eu: re-use hex_to_bin() instead of custom > >> code > >> > >> Then try again to apply my patches. > > > > I don't have those, sorry, my patch queue for staging patches are now > > empty as of everything sent up to yesterday. Please resend what you > > want me to apply, in the order in which you want me to apply it. > > Is it okay if i send you a single patch set having my three patch set and > Andy Shevchenko's patches ? I don't care :) ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH V2] staging: dgap: removes redundant null check and change paramter for dgap_maxcps_room()
Null checks for tty, un and ch are already done by caller, so replace parameter "tty" with "ch" and "un". Signed-off-by: Daeseok Youn --- V2: revert return type from int to void. leave it originally. drivers/staging/dgap/dgap.c | 21 - 1 files changed, 4 insertions(+), 17 deletions(-) diff --git a/drivers/staging/dgap/dgap.c b/drivers/staging/dgap/dgap.c index cc21dd2..9affc5b 100644 --- a/drivers/staging/dgap/dgap.c +++ b/drivers/staging/dgap/dgap.c @@ -2507,22 +2507,9 @@ static int dgap_wait_for_drain(struct tty_struct *tty) * returns the new bytes_available. This only affects printer * output. */ -static int dgap_maxcps_room(struct tty_struct *tty, int bytes_available) +static int dgap_maxcps_room(struct channel_t *ch, struct un_t *un, + int bytes_available) { - struct channel_t *ch; - struct un_t *un; - - if (!tty) - return bytes_available; - - un = tty->driver_data; - if (!un || un->magic != DGAP_UNIT_MAGIC) - return bytes_available; - - ch = un->un_ch; - if (!ch || ch->magic != DGAP_CHANNEL_MAGIC) - return bytes_available; - /* * If its not the Transparent print device, return * the full data amount. @@ -2624,7 +2611,7 @@ static int dgap_tty_write_room(struct tty_struct *tty) ret += ch->ch_tsize; /* Limit printer to maxcps */ - ret = dgap_maxcps_room(tty, ret); + ret = dgap_maxcps_room(ch, un, ret); /* * If we are printer device, leave space for @@ -2729,7 +2716,7 @@ static int dgap_tty_write(struct tty_struct *tty, const unsigned char *buf, * Limit printer output to maxcps overall, with bursts allowed * up to bufsize characters. */ - bufcount = dgap_maxcps_room(tty, bufcount); + bufcount = dgap_maxcps_room(ch, un, bufcount); /* * Take minimum of what the user wants to send, and the -- 1.7.1 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 01/69] staging: rtl8188eu: re-use mac_pton() helper
From: Andy Shevchenko The helper mac_pton() validates and converts MAC address from string format to a number. Originally code uses simple code to do that. With mac_pton() the driver now validates input as well. Signed-off-by: Andy Shevchenko Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 11 ++- drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 101 +++- 2 files changed, 32 insertions(+), 80 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index 54ebf34..3eeab2c 100644 --- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c @@ -1092,16 +1092,15 @@ u8 key_2char2num(u8 hch, u8 lch) void rtw_macaddr_cfg(u8 *mac_addr) { u8 mac[ETH_ALEN]; + if (mac_addr == NULL) return; - if (rtw_initmac) { /* Users specify the mac address */ - int jj, kk; - - for (jj = 0, kk = 0; jj < ETH_ALEN; jj++, kk += 3) - mac[jj] = key_2char2num(rtw_initmac[kk], rtw_initmac[kk + 1]); + if (rtw_initmac && mac_pton(rtw_initmac, mac)) { + /* Users specify the mac address */ memcpy(mac_addr, mac, ETH_ALEN); - } else {/* Use the mac address stored in the Efuse */ + } else { + /* Use the mac address stored in the Efuse */ memcpy(mac, mac_addr, ETH_ALEN); } diff --git a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c index 221366f..7629206 100644 --- a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c @@ -105,44 +105,6 @@ static const char * const iw_operation_mode[] = { "Secondary", "Monitor" }; -static int hex2num_i(char c) -{ - if (c >= '0' && c <= '9') - return c - '0'; - if (c >= 'a' && c <= 'f') - return c - 'a' + 10; - if (c >= 'A' && c <= 'F') - return c - 'A' + 10; - return -1; -} - -/** - * hwaddr_aton - Convert ASCII string to MAC address - * @txt: MAC address as a string (e.g., "00:11:22:33:44:55") - * @addr: Buffer for the MAC address (ETH_ALEN = 6 bytes) - * Returns: 0 on success, -1 on failure (e.g., string not a MAC address) - */ -static int hwaddr_aton_i(const char *txt, u8 *addr) -{ - int i; - - for (i = 0; i < 6; i++) { - int a, b; - - a = hex2num_i(*txt++); - if (a < 0) - return -1; - b = hex2num_i(*txt++); - if (b < 0) - return -1; - *addr++ = (a << 4) | b; - if (i < 5 && *txt++ != ':') - return -1; - } - - return 0; -} - void indicate_wx_scan_complete_event(struct adapter *padapter) { union iwreq_data wrqu; @@ -2553,7 +2515,7 @@ static int rtw_get_ap_info(struct net_device *dev, while (phead != plist) { pnetwork = container_of(plist, struct wlan_network, list); - if (hwaddr_aton_i(data, bssid)) { + if (!mac_pton(data, bssid)) { DBG_88E("Invalid BSSID '%s'.\n", (u8 *)data); spin_unlock_bh(&pmlmepriv->scanned_queue.lock); return -EINVAL; @@ -2837,12 +2799,11 @@ static int rtw_p2p_profilefound(struct net_device *dev, if (pwdinfo->profileindex >= P2P_MAX_PERSISTENT_GROUP_NUM) { ret = -1; } else { - int jj, kk; - /* Add this profile information into pwdinfo->profileinfo */ /* Ex: 1XX:XX:XX:XX:XX:XXYYSSID */ - for (jj = 0, kk = 1; jj < ETH_ALEN; jj++, kk += 3) - pwdinfo->profileinfo[pwdinfo->profileindex].peermac[jj] = key_2char2num(extra[kk], extra[kk + 1]); + if (!mac_pton(extra + 1, + pwdinfo->profileinfo[pwdinfo->profileindex].peermac)) + return -EINVAL; pwdinfo->profileinfo[pwdinfo->profileindex].ssidlen = (extra[18] - '0') * 10 + (extra[19] - '0'); memcpy(pwdinfo->profileinfo[pwdinfo->profileindex].ssid, &extra[20], pwdinfo->profileinfo[pwdinfo->profileindex].ssidlen); @@ -3021,8 +2982,7 @@ static int rtw_p2p_get_wps_configmethod(struct net_device *dev, int ret = 0; struct adapter *padapter = (struct adapter *)rtw_netdev_priv(dev); u8 peerMAC[ETH_ALEN] = {0x00}; - int jj, kk; - u8 peerMACStr[17] = {0x00}; + u8 peerMACStr[18] = {0x00}; struct mlme_priv*pmlmepr
[PATCH 03/69] staging: rtl8188eu: re-use hex_to_bin() instead of custom code
From: Andy Shevchenko hex_to_bin could be used to convert hexdecimal digit to its binary representation. Signed-off-by: Andy Shevchenko Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_ieee80211.c | 17 - drivers/staging/rtl8188eu/include/wlan_bssdef.h |3 --- drivers/staging/rtl8188eu/os_dep/ioctl_linux.c |6 +++--- 3 files changed, 3 insertions(+), 23 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index 02bd3b0..a375b75 100644 --- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c @@ -1067,23 +1067,6 @@ enum parse_res rtw_ieee802_11_parse_elems(u8 *start, uint len, return unknown ? ParseUnknown : ParseOK; } -u8 key_char2num(u8 ch) -{ - if ((ch >= '0') && (ch <= '9')) - return ch - '0'; - else if ((ch >= 'a') && (ch <= 'f')) - return ch - 'a' + 10; - else if ((ch >= 'A') && (ch <= 'F')) - return ch - 'A' + 10; - else - return 0xff; -} - -u8 str_2char2num(u8 hch, u8 lch) -{ -return (key_char2num(hch) * 10) + key_char2num(lch); -} - void rtw_macaddr_cfg(u8 *mac_addr) { u8 mac[ETH_ALEN]; diff --git a/drivers/staging/rtl8188eu/include/wlan_bssdef.h b/drivers/staging/rtl8188eu/include/wlan_bssdef.h index 85e4b92..53b1bd8 100644 --- a/drivers/staging/rtl8188eu/include/wlan_bssdef.h +++ b/drivers/staging/rtl8188eu/include/wlan_bssdef.h @@ -340,7 +340,4 @@ struct ndis_802_11_cap { struct ndis_802_11_auth_encrypt AuthenticationEncryptionSupported[1]; }; -u8 key_char2num(u8 ch); -u8 str_2char2num(u8 hch, u8 lch); - #endif /* ifndef WLAN_BSSDEF_H_ */ diff --git a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c index 6402f48..78ab270 100644 --- a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c @@ -2697,7 +2697,7 @@ static int rtw_p2p_set_intent(struct net_device *dev, intent = extra[0] - '0'; break; case 2: - intent = str_2char2num(extra[0], extra[1]); + intent = hex_to_bin(extra[0]) * 10 + hex_to_bin(extra[1]); break; } if (intent <= 15) @@ -2722,7 +2722,7 @@ static int rtw_p2p_set_listen_ch(struct net_device *dev, listen_ch = extra[0] - '0'; break; case 2: - listen_ch = str_2char2num(extra[0], extra[1]); + listen_ch = hex_to_bin(extra[0]) * 10 + hex_to_bin(extra[1]); break; } @@ -2755,7 +2755,7 @@ static int rtw_p2p_set_op_ch(struct net_device *dev, op_ch = extra[0] - '0'; break; case 2: - op_ch = str_2char2num(extra[0], extra[1]); + op_ch = hex_to_bin(extra[0]) * 10 + hex_to_bin(extra[1]); break; } -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 02/69] staging: rtl8188eu: substitute custom hex2bin()
From: Andy Shevchenko Instead of using custom code to convert hexdecinal strings to their binary represantation let's use kernel's library function. Signed-off-by: Andy Shevchenko Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_ieee80211.c |5 --- drivers/staging/rtl8188eu/include/wlan_bssdef.h |1 - drivers/staging/rtl8188eu/os_dep/ioctl_linux.c | 46 +++ 3 files changed, 31 insertions(+), 21 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index 3eeab2c..02bd3b0 100644 --- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c @@ -1084,11 +1084,6 @@ u8 str_2char2num(u8 hch, u8 lch) return (key_char2num(hch) * 10) + key_char2num(lch); } -u8 key_2char2num(u8 hch, u8 lch) -{ -return (key_char2num(hch) << 4) | key_char2num(lch); -} - void rtw_macaddr_cfg(u8 *mac_addr) { u8 mac[ETH_ALEN]; diff --git a/drivers/staging/rtl8188eu/include/wlan_bssdef.h b/drivers/staging/rtl8188eu/include/wlan_bssdef.h index e70075d..85e4b92 100644 --- a/drivers/staging/rtl8188eu/include/wlan_bssdef.h +++ b/drivers/staging/rtl8188eu/include/wlan_bssdef.h @@ -340,7 +340,6 @@ struct ndis_802_11_cap { struct ndis_802_11_auth_encrypt AuthenticationEncryptionSupported[1]; }; -u8 key_2char2num(u8 hch, u8 lch); u8 key_char2num(u8 ch); u8 str_2char2num(u8 hch, u8 lch); diff --git a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c index 7629206..6402f48 100644 --- a/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c +++ b/drivers/staging/rtl8188eu/os_dep/ioctl_linux.c @@ -5855,7 +5855,7 @@ static int rtw_mp_efuse_set(struct net_device *dev, struct efuse_hal *pEfuseHal; u8 ips_mode = 0, lps_mode = 0; - u32 i, jj, kk; + u32 i; u8 *setdata = NULL; u8 *ShadowMapBT = NULL; u8 *ShadowMapWiFi = NULL; @@ -5933,8 +5933,11 @@ static int rtw_mp_efuse_set(struct net_device *dev, DBG_88E("%s: cnts =%d\n", __func__, cnts); DBG_88E("%s: map data =%s\n", __func__, tmp[2]); - for (jj = 0, kk = 0; jj < cnts; jj++, kk += 2) - setdata[jj] = key_2char2num(tmp[2][kk], tmp[2][kk + 1]); + if (hex2bin(setdata, tmp[2], cnts) < 0) { + err = -EINVAL; + goto exit; + } + /* Change to check TYPE_EFUSE_MAP_LEN, because 8188E raw 256, logic map over 256. */ EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&max_available_size); if ((addr+cnts) > max_available_size) { @@ -5972,8 +5975,10 @@ static int rtw_mp_efuse_set(struct net_device *dev, DBG_88E("%s: cnts =%d\n", __func__, cnts); DBG_88E("%s: raw data =%s\n", __func__, tmp[2]); - for (jj = 0, kk = 0; jj < cnts; jj++, kk += 2) - setrawdata[jj] = key_2char2num(tmp[2][kk], tmp[2][kk + 1]); + if (hex2bin(setrawdata, tmp[2], cnts) < 0) { + err = -EINVAL; + goto exit; + } if (rtw_efuse_access(padapter, true, addr, cnts, setrawdata) == _FAIL) { DBG_88E("%s: rtw_efuse_access error!!\n", __func__); @@ -6008,8 +6013,11 @@ static int rtw_mp_efuse_set(struct net_device *dev, DBG_88E("%s: cnts =%d\n", __func__, cnts); DBG_88E("%s: MAC address =%s\n", __func__, tmp[1]); - for (jj = 0, kk = 0; jj < cnts; jj++, kk += 2) - setdata[jj] = key_2char2num(tmp[1][kk], tmp[1][kk + 1]); + if (hex2bin(setdata, tmp[1], cnts) < 0) { + err = -EINVAL; + goto exit; + } + /* Change to check TYPE_EFUSE_MAP_LEN, because 8188E raw 256, logic map over 256. */ EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_EFUSE_MAP_LEN, (void *)&max_available_size); if ((addr+cnts) > max_available_size) { @@ -6046,8 +6054,10 @@ static int rtw_mp_efuse_set(struct net_device *dev, DBG_88E("%s: cnts =%d\n", __func__, cnts); DBG_88E("%s: VID/PID =%s\n", __func__, tmp[1]); - for (jj = 0, kk = 0; jj < cnts; jj++, kk += 2) - setdata[jj] = key_2char2num(tmp[1][kk], tmp[1][kk + 1]); + if (hex2bin(setdata, tmp[1], cnts) < 0) { + err = -EINVAL; + goto exit; + } EFUSE_GetEfuseDefinition(padapter, EFUSE_WIFI, TYPE_AVAILABLE_EFUSE_BYTES_TOTAL, (void *)&max_available_size); if ((addr+cnts) > max_available_size) { @@ -6085,8 +6095,10 @@ static int rtw_mp_efuse_set(struct net_device *dev, DBG_88E("%s
[PATCH 13/69] staging: rtl8188eu: Remove dummy function rtw_hal_c2h_handler()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/hal/hal_intf.c |9 - drivers/staging/rtl8188eu/include/hal_intf.h |4 2 files changed, 13 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/hal_intf.c b/drivers/staging/rtl8188eu/hal/hal_intf.c index f002c43..279dd0b 100644 --- a/drivers/staging/rtl8188eu/hal/hal_intf.c +++ b/drivers/staging/rtl8188eu/hal/hal_intf.c @@ -376,15 +376,6 @@ void rtw_hal_reset_security_engine(struct adapter *adapter) adapter->HalFunc.hal_reset_security_engine(adapter); } -s32 rtw_hal_c2h_handler(struct adapter *adapter, struct c2h_evt_hdr *c2h_evt) -{ - s32 ret = _FAIL; - - if (adapter->HalFunc.c2h_handler) - ret = adapter->HalFunc.c2h_handler(adapter, c2h_evt); - return ret; -} - c2h_id_filter rtw_hal_c2h_id_filter_ccx(struct adapter *adapter) { return adapter->HalFunc.c2h_id_filter_ccx; diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h index fb797c7..f7ce9de 100644 --- a/drivers/staging/rtl8188eu/include/hal_intf.h +++ b/drivers/staging/rtl8188eu/include/hal_intf.h @@ -236,8 +236,6 @@ struct hal_ops { void (*hal_notch_filter)(struct adapter *adapter, bool enable); void (*hal_reset_security_engine)(struct adapter *adapter); - s32 (*c2h_handler)(struct adapter *padapter, - struct c2h_evt_hdr *c2h_evt); c2h_id_filter c2h_id_filter_ccx; }; @@ -342,8 +340,6 @@ int rtw_hal_iol_cmd(struct adapter *adapter, struct xmit_frame *xmit_frame, void rtw_hal_notch_filter(struct adapter *adapter, bool enable); void rtw_hal_reset_security_engine(struct adapter *adapter); -s32 rtw_hal_c2h_handler(struct adapter *adapter, - struct c2h_evt_hdr *c2h_evt); c2h_id_filter rtw_hal_c2h_id_filter_ccx(struct adapter *adapter); void indicate_wx_scan_complete_event(struct adapter *padapter); u8 rtw_do_join(struct adapter *padapter); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 06/69] staging: rtl8188eu: Remove usb_osintf.h header file.
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_ieee80211.c |2 +- drivers/staging/rtl8188eu/core/rtw_ioctl_set.c |2 -- drivers/staging/rtl8188eu/core/rtw_mlme.c |1 - drivers/staging/rtl8188eu/core/rtw_pwrctrl.c |1 - drivers/staging/rtl8188eu/core/rtw_xmit.c |1 - drivers/staging/rtl8188eu/hal/usb_halinit.c|1 - drivers/staging/rtl8188eu/include/osdep_intf.h |5 +++- drivers/staging/rtl8188eu/include/usb_osintf.h | 38 drivers/staging/rtl8188eu/os_dep/os_intfs.c|1 - drivers/staging/rtl8188eu/os_dep/usb_intf.c| 19 ++-- drivers/staging/rtl8188eu/os_dep/xmit_linux.c |1 - 11 files changed, 14 insertions(+), 58 deletions(-) delete mode 100644 drivers/staging/rtl8188eu/include/usb_osintf.h diff --git a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c index a375b75..24665d6 100644 --- a/drivers/staging/rtl8188eu/core/rtw_ieee80211.c +++ b/drivers/staging/rtl8188eu/core/rtw_ieee80211.c @@ -20,11 +20,11 @@ #define _IEEE80211_C #include +#include #include #include #include #include -#include u8 RTW_WPA_OUI_TYPE[] = { 0x00, 0x50, 0xf2, 1 }; u16 RTW_WPA_VERSION = 1; diff --git a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c index a97da87..39932cb 100644 --- a/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c +++ b/drivers/staging/rtl8188eu/core/rtw_ioctl_set.c @@ -25,8 +25,6 @@ #include #include -#include - extern void indicate_wx_scan_complete_event(struct adapter *padapter); #define IS_MAC_ADDRESS_BROADCAST(addr) \ diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme.c b/drivers/staging/rtl8188eu/core/rtw_mlme.c index 0cb9e15..45e2739 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme.c @@ -30,7 +30,6 @@ #include #include #include -#include #include extern unsigned char MCS_rate_2R[16]; diff --git a/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c b/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c index 9b80c8a..5605d95 100644 --- a/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c +++ b/drivers/staging/rtl8188eu/core/rtw_pwrctrl.c @@ -24,7 +24,6 @@ #include #include #include -#include static int rtw_hw_suspend(struct adapter *padapter) { diff --git a/drivers/staging/rtl8188eu/core/rtw_xmit.c b/drivers/staging/rtl8188eu/core/rtw_xmit.c index 95c508a..639ace0 100644 --- a/drivers/staging/rtl8188eu/core/rtw_xmit.c +++ b/drivers/staging/rtl8188eu/core/rtw_xmit.c @@ -23,7 +23,6 @@ #include #include #include -#include #include static u8 P802_1H_OUI[P80211_OUI_LEN] = { 0x00, 0x00, 0xf8 }; diff --git a/drivers/staging/rtl8188eu/hal/usb_halinit.c b/drivers/staging/rtl8188eu/hal/usb_halinit.c index 19cf5f5..2bec1c3 100644 --- a/drivers/staging/rtl8188eu/hal/usb_halinit.c +++ b/drivers/staging/rtl8188eu/hal/usb_halinit.c @@ -27,7 +27,6 @@ #include #include #include -#include #defineHAL_MAC_ENABLE 1 #defineHAL_BB_ENABLE 1 diff --git a/drivers/staging/rtl8188eu/include/osdep_intf.h b/drivers/staging/rtl8188eu/include/osdep_intf.h index 523141a..efa7868 100644 --- a/drivers/staging/rtl8188eu/include/osdep_intf.h +++ b/drivers/staging/rtl8188eu/include/osdep_intf.h @@ -24,6 +24,9 @@ #include #include +extern char *rtw_initmac; +extern int rtw_mc2u_disable; + u8 rtw_init_drv_sw(struct adapter *padapter); u8 rtw_free_drv_sw(struct adapter *padapter); u8 rtw_reset_drv_sw(struct adapter *padapter); @@ -40,8 +43,8 @@ u16 rtw_recv_select_queue(struct sk_buff *skb); void rtw_proc_init_one(struct net_device *dev); void rtw_proc_remove_one(struct net_device *dev); +int pm_netdev_open(struct net_device *pnetdev, u8 bnormal); void rtw_ips_dev_unload(struct adapter *padapter); - int rtw_ips_pwr_up(struct adapter *padapter); void rtw_ips_pwr_down(struct adapter *padapter); diff --git a/drivers/staging/rtl8188eu/include/usb_osintf.h b/drivers/staging/rtl8188eu/include/usb_osintf.h deleted file mode 100644 index 85805ca..000 --- a/drivers/staging/rtl8188eu/include/usb_osintf.h +++ /dev/null @@ -1,38 +0,0 @@ -/** - * - * Copyright(c) 2007 - 2011 Realtek Corporation. All rights reserved. - * - * This program is free software; you can redistribute it and/or modify it - * under the terms of version 2 of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but WITHOUT - * 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 Found
[PATCH 09/69] staging: rtl8188eu: Remove struct evt_priv and its uses
c2h_wk (work_struct) is naver scheduled to handle events, so no use of keeping event data. And also function rtw_hal_c2h_handler() responsible for handling c2h events, is a dummy function. Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c | 86 - drivers/staging/rtl8188eu/core/rtw_mlme_ext.c |4 -- drivers/staging/rtl8188eu/include/cmd_osdep.h |1 - drivers/staging/rtl8188eu/include/drv_types.h |1 - drivers/staging/rtl8188eu/include/rtw_cmd.h | 14 drivers/staging/rtl8188eu/os_dep/os_intfs.c |8 --- 6 files changed, 114 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index 310e916..293fda4 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -72,43 +72,6 @@ exit: return res; } -static void c2h_wk_callback(struct work_struct *work); - -int _rtw_init_evt_priv(struct evt_priv *pevtpriv) -{ - int res = _SUCCESS; - - - /* allocate DMA-able/Non-Page memory for cmd_buf and rsp_buf */ - atomic_set(&pevtpriv->event_seq, 0); - pevtpriv->evt_done_cnt = 0; - - INIT_WORK(&pevtpriv->c2h_wk, c2h_wk_callback); - pevtpriv->c2h_wk_alive = false; - pevtpriv->c2h_queue = rtw_cbuf_alloc(C2H_QUEUE_MAX_LEN+1); - - - return res; -} - -void rtw_free_evt_priv(struct evt_priv *pevtpriv) -{ - - RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("+rtw_free_evt_priv\n")); - - cancel_work_sync(&pevtpriv->c2h_wk); - while (pevtpriv->c2h_wk_alive) - msleep(10); - - while (!rtw_cbuf_empty(pevtpriv->c2h_queue)) { - void *c2h = rtw_cbuf_pop(pevtpriv->c2h_queue); - if (c2h != NULL && c2h != (void *)pevtpriv) - kfree(c2h); - } - RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("-rtw_free_evt_priv\n")); - -} - void _rtw_free_cmd_priv(struct cmd_priv *pcmdpriv) { @@ -175,13 +138,6 @@ u32 rtw_init_cmd_priv(struct cmd_priv *pcmdpriv) return res; } -u32 rtw_init_evt_priv(struct evt_priv *pevtpriv) -{ - int res; - res = _rtw_init_evt_priv(pevtpriv); - return res; -} - void rtw_free_cmd_priv(struct cmd_priv *pcmdpriv) { RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("rtw_free_cmd_priv\n")); @@ -1877,48 +1833,6 @@ exit: return ret; } -static void c2h_wk_callback(struct work_struct *work) -{ - struct evt_priv *evtpriv = container_of(work, struct evt_priv, c2h_wk); - struct adapter *adapter = container_of(evtpriv, struct adapter, evtpriv); - struct c2h_evt_hdr *c2h_evt; - c2h_id_filter ccx_id_filter = rtw_hal_c2h_id_filter_ccx(adapter); - - evtpriv->c2h_wk_alive = true; - - while (!rtw_cbuf_empty(evtpriv->c2h_queue)) { - c2h_evt = (struct c2h_evt_hdr *) - rtw_cbuf_pop(evtpriv->c2h_queue); - if (c2h_evt != NULL) - /* This C2H event is read, clear it */ - c2h_evt_clear(adapter); - else { - c2h_evt = (struct c2h_evt_hdr *)rtw_malloc(16); - /* This C2H event is not read, read & clear now */ - if (c2h_evt != NULL && - c2h_evt_read(adapter, (u8 *)c2h_evt) != _SUCCESS) - continue; - } - - /* Special pointer to trigger c2h_evt_clear only */ - if ((void *)c2h_evt == (void *)evtpriv) - continue; - - if (!c2h_evt_exist(c2h_evt)) { - kfree(c2h_evt); - continue; - } - - if (ccx_id_filter(c2h_evt->id) == true) { - /* Handle CCX report here */ - rtw_hal_c2h_handler(adapter, c2h_evt); - kfree(c2h_evt); - } - } - - evtpriv->c2h_wk_alive = false; -} - u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf) { struct drvextra_cmd_parm *pdrvextra_cmd; diff --git a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c index c42d9fd..c4888b1 100644 --- a/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c +++ b/drivers/staging/rtl8188eu/core/rtw_mlme_ext.c @@ -5461,7 +5461,6 @@ u8 mlme_evt_hdl(struct adapter *padapter, unsigned char *pbuf) u16 evt_sz; uint*peventbuf; void (*event_callback)(struct adapter *dev, u8 *pbuf); - struct evt_priv *pevt_priv = &(padapter->evtpriv); peventbuf = (uint *)pbuf; evt_sz = (u16)(*peventbuf&0x); @@ -5482,15 +5481,12 @@ u8 mlme_evt_hdl(struct adapter *padapter, unsigned char *pbuf) goto _abort_event_; } - atomic_inc(&pevt_priv->event_seq); - peventbuf += 2; if (peventbuf) {
[PATCH 10/69] staging: rtl8188eu: Remove function c2h_evt_hdl()
c2h_evt_hdl() calls a dummy function rtw_hal_c2h_handler() to handle events, so no use of keeping it. Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c | 28 1 file changed, 28 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index 293fda4..a2b355c 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -1808,31 +1808,6 @@ exit: return res; } -static s32 c2h_evt_hdl(struct adapter *adapter, struct c2h_evt_hdr *c2h_evt, c2h_id_filter filter) -{ - s32 ret = _FAIL; - u8 buf[16]; - - if (!c2h_evt) { - /* No c2h event in cmd_obj, read c2h event before handling*/ - if (c2h_evt_read(adapter, buf) == _SUCCESS) { - c2h_evt = (struct c2h_evt_hdr *)buf; - - if (filter && filter(c2h_evt->id) == false) - goto exit; - - ret = rtw_hal_c2h_handler(adapter, c2h_evt); - } - } else { - if (filter && filter(c2h_evt->id) == false) - goto exit; - - ret = rtw_hal_c2h_handler(adapter, c2h_evt); - } -exit: - return ret; -} - u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf) { struct drvextra_cmd_parm *pdrvextra_cmd; @@ -1863,9 +1838,6 @@ u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf) rtw_chk_hi_queue_hdl(padapter); break; #endif /* CONFIG_88EU_AP_MODE */ - case C2H_WK_CID: - c2h_evt_hdl(padapter, (struct c2h_evt_hdr *)pdrvextra_cmd->pbuf, NULL); - break; default: break; } -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 11/69] staging: rtl8188eu: Remove unused function c2h_evt_read()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/hal/hal_com.c | 49 --- drivers/staging/rtl8188eu/include/hal_com.h |2 -- 2 files changed, 51 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/hal_com.c b/drivers/staging/rtl8188eu/hal/hal_com.c index baefb46..c91a58c 100644 --- a/drivers/staging/rtl8188eu/hal/hal_com.c +++ b/drivers/staging/rtl8188eu/hal/hal_com.c @@ -330,52 +330,3 @@ void c2h_evt_clear(struct adapter *adapter) { usb_write8(adapter, REG_C2HEVT_CLEAR, C2H_EVT_HOST_CLOSE); } - -s32 c2h_evt_read(struct adapter *adapter, u8 *buf) -{ - s32 ret = _FAIL; - struct c2h_evt_hdr *c2h_evt; - int i; - u8 trigger; - - if (buf == NULL) - goto exit; - - trigger = usb_read8(adapter, REG_C2HEVT_CLEAR); - - if (trigger == C2H_EVT_HOST_CLOSE) - goto exit; /* Not ready */ - else if (trigger != C2H_EVT_FW_CLOSE) - goto clear_evt; /* Not a valid value */ - - c2h_evt = (struct c2h_evt_hdr *)buf; - - memset(c2h_evt, 0, 16); - - *buf = usb_read8(adapter, REG_C2HEVT_MSG_NORMAL); - *(buf+1) = usb_read8(adapter, REG_C2HEVT_MSG_NORMAL + 1); - - RT_PRINT_DATA(_module_hal_init_c_, _drv_info_, "c2h_evt_read(): ", - &c2h_evt , sizeof(c2h_evt)); - - /* Read the content */ - for (i = 0; i < c2h_evt->plen; i++) - c2h_evt->payload[i] = usb_read8(adapter, REG_C2HEVT_MSG_NORMAL + - sizeof(*c2h_evt) + i); - - RT_PRINT_DATA(_module_hal_init_c_, _drv_info_, - "c2h_evt_read(): Command Content:\n", - c2h_evt->payload, c2h_evt->plen); - - ret = _SUCCESS; - -clear_evt: - /* - * Clear event to notify FW we have read the command. - * If this field isn't clear, the FW won't update the next - * command message. - */ - c2h_evt_clear(adapter); -exit: - return ret; -} diff --git a/drivers/staging/rtl8188eu/include/hal_com.h b/drivers/staging/rtl8188eu/include/hal_com.h index 81c2709..1527efa 100644 --- a/drivers/staging/rtl8188eu/include/hal_com.h +++ b/drivers/staging/rtl8188eu/include/hal_com.h @@ -168,6 +168,4 @@ bool Hal_MappingOutPipe(struct adapter *pAdapter, u8 NumOutPipe); void hal_init_macaddr(struct adapter *adapter); void c2h_evt_clear(struct adapter *adapter); -s32 c2h_evt_read(struct adapter *adapter, u8 *buf); - #endif /* __HAL_COMMON_H__ */ -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 12/69] staging: rtl8188eu: Remove unused function c2h_evt_clear()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/hal/hal_com.c | 11 --- drivers/staging/rtl8188eu/include/hal_com.h |2 -- 2 files changed, 13 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/hal_com.c b/drivers/staging/rtl8188eu/hal/hal_com.c index c91a58c..170e3de 100644 --- a/drivers/staging/rtl8188eu/hal/hal_com.c +++ b/drivers/staging/rtl8188eu/hal/hal_com.c @@ -319,14 +319,3 @@ void hal_init_macaddr(struct adapter *adapter) rtw_hal_set_hwreg(adapter, HW_VAR_MAC_ADDR, adapter->eeprompriv.mac_addr); } - -/* -* C2H event format: -* Field TRIGGERCONTENTCMD_SEQ CMD_LEN CMD_ID -* BITS [127:120] [119:16] [15:8] [7:4][3:0] -*/ - -void c2h_evt_clear(struct adapter *adapter) -{ - usb_write8(adapter, REG_C2HEVT_CLEAR, C2H_EVT_HOST_CLOSE); -} diff --git a/drivers/staging/rtl8188eu/include/hal_com.h b/drivers/staging/rtl8188eu/include/hal_com.h index 1527efa..47715d9 100644 --- a/drivers/staging/rtl8188eu/include/hal_com.h +++ b/drivers/staging/rtl8188eu/include/hal_com.h @@ -166,6 +166,4 @@ void HalSetBrateCfg(struct adapter *Adapter, u8 *mBratesOS, u16 *pBrateCfg); bool Hal_MappingOutPipe(struct adapter *pAdapter, u8 NumOutPipe); void hal_init_macaddr(struct adapter *adapter); - -void c2h_evt_clear(struct adapter *adapter); #endif /* __HAL_COMMON_H__ */ -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 15/69] staging: rtl8188eu: rtw_cmd.h: Remove unused macro and structure
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/include/rtw_cmd.h |9 - 1 file changed, 9 deletions(-) diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index 7a70f02..049e112 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -74,15 +74,6 @@ do {\ pcmd->rspsz = 0;\ } while (0) -struct c2h_evt_hdr { - u8 id:4; - u8 plen:4; - u8 seq; - u8 payload[0]; -}; - -#define c2h_evt_exist(c2h_evt) ((c2h_evt)->id || (c2h_evt)->plen) - u32 rtw_enqueue_cmd(struct cmd_priv *pcmdpriv, struct cmd_obj *obj); struct cmd_obj *rtw_dequeue_cmd(struct cmd_priv *pcmdpriv); void rtw_free_cmd_obj(struct cmd_obj *pcmd); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 14/69] staging: rtl8188eu: Remove unused function rtw_hal_c2h_id_filter_ccx()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/hal/hal_intf.c |5 - drivers/staging/rtl8188eu/include/hal_intf.h |4 2 files changed, 9 deletions(-) diff --git a/drivers/staging/rtl8188eu/hal/hal_intf.c b/drivers/staging/rtl8188eu/hal/hal_intf.c index 279dd0b..2faa690 100644 --- a/drivers/staging/rtl8188eu/hal/hal_intf.c +++ b/drivers/staging/rtl8188eu/hal/hal_intf.c @@ -375,8 +375,3 @@ void rtw_hal_reset_security_engine(struct adapter *adapter) if (adapter->HalFunc.hal_reset_security_engine) adapter->HalFunc.hal_reset_security_engine(adapter); } - -c2h_id_filter rtw_hal_c2h_id_filter_ccx(struct adapter *adapter) -{ - return adapter->HalFunc.c2h_id_filter_ccx; -} diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h index f7ce9de..56d5c50 100644 --- a/drivers/staging/rtl8188eu/include/hal_intf.h +++ b/drivers/staging/rtl8188eu/include/hal_intf.h @@ -144,8 +144,6 @@ enum hal_intf_ps_func { HAL_MAX_ID, }; -typedef s32 (*c2h_id_filter)(u8 id); - struct hal_ops { u32 (*hal_power_on)(struct adapter *padapter); u32 (*hal_init)(struct adapter *padapter); @@ -236,7 +234,6 @@ struct hal_ops { void (*hal_notch_filter)(struct adapter *adapter, bool enable); void (*hal_reset_security_engine)(struct adapter *adapter); - c2h_id_filter c2h_id_filter_ccx; }; enum rt_eeprom_type { @@ -340,7 +337,6 @@ int rtw_hal_iol_cmd(struct adapter *adapter, struct xmit_frame *xmit_frame, void rtw_hal_notch_filter(struct adapter *adapter, bool enable); void rtw_hal_reset_security_engine(struct adapter *adapter); -c2h_id_filter rtw_hal_c2h_id_filter_ccx(struct adapter *adapter); void indicate_wx_scan_complete_event(struct adapter *padapter); u8 rtw_do_join(struct adapter *padapter); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 18/69] staging: rtl8188eu: Remove unused function rtw_setbasicrate_cmd()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c| 33 --- drivers/staging/rtl8188eu/include/rtw_cmd.h |1 - 2 files changed, 34 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index ec0990f..cc8b82c 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -482,39 +482,6 @@ exit: return res; } -u8 rtw_setbasicrate_cmd(struct adapter *padapter, u8 *rateset) -{ - struct cmd_obj *ph2c; - struct setbasicrate_parm *pssetbasicratepara; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - u8 res = _SUCCESS; - - - ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); - if (ph2c == NULL) { - res = _FAIL; - goto exit; - } - pssetbasicratepara = kzalloc(sizeof(struct setbasicrate_parm), GFP_KERNEL); - - if (pssetbasicratepara == NULL) { - kfree(ph2c); - res = _FAIL; - goto exit; - } - - init_h2fwcmd_w_parm_no_rsp(ph2c, pssetbasicratepara, _SetBasicRate_CMD_); - - memcpy(pssetbasicratepara->basicrates, rateset, NumRates); - - res = rtw_enqueue_cmd(pcmdpriv, ph2c); -exit: - - - return res; -} - - /* unsigned char rtw_setphy_cmd(unsigned char *adapter) diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index ca17145..fb999fc 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -743,7 +743,6 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infra networktype); u8 rtw_setdatarate_cmd(struct adapter *padapter, u8 *rateset); -u8 rtw_setbasicrate_cmd(struct adapter *padapter, u8 *rateset); u8 rtw_setbbreg_cmd(struct adapter *padapter, u8 offset, u8 val); u8 rtw_setrfreg_cmd(struct adapter *padapter, u8 offset, u32 val); u8 rtw_getbbreg_cmd(struct adapter *padapter, u8 offset, u8 *pval); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 16/69] staging: rtl8188eu: Remove unused function rtw_getrttbl_cmd()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c| 34 --- drivers/staging/rtl8188eu/include/rtw_cmd.h |8 --- 2 files changed, 42 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index a2b355c..294c9e2 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -1122,40 +1122,6 @@ exit: return res; } -u8 rtw_getrttbl_cmd(struct adapter *padapter, struct getratable_rsp *pval) -{ - struct cmd_obj *ph2c; - struct getratable_parm *pgetrttblparm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - u8 res = _SUCCESS; - - ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); - if (ph2c == NULL) { - res = _FAIL; - goto exit; - } - pgetrttblparm = kzalloc(sizeof(struct getratable_parm), GFP_KERNEL); - - if (pgetrttblparm == NULL) { - kfree(ph2c); - res = _FAIL; - goto exit; - } - - INIT_LIST_HEAD(&ph2c->list); - ph2c->cmdcode = GEN_CMD_CODE(_GetRaTable); - ph2c->parmbuf = (unsigned char *)pgetrttblparm; - ph2c->cmdsz = sizeof(struct getratable_parm); - ph2c->rsp = (u8 *)pval; - ph2c->rspsz = sizeof(struct getratable_rsp); - - pgetrttblparm->rsvd = 0x0; - - res = rtw_enqueue_cmd(pcmdpriv, ph2c); -exit: - return res; -} - u8 rtw_setassocsta_cmd(struct adapter *padapter, u8 *mac_addr) { struct cmd_priv *pcmdpriv = &padapter->cmdpriv; diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index 049e112..bb1f8f0 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -601,13 +601,6 @@ struct getratable_parm { uint rsvd; }; -struct getratable_rsp { - u8 ss_ForceUp[NumRates]; - u8 ss_ULevel[NumRates]; - u8 ss_DLevel[NumRates]; - u8 count_judge[NumRates]; -}; - /* to get TX,RX retry count */ struct gettxretrycnt_parm { @@ -758,7 +751,6 @@ u8 rtw_getrfreg_cmd(struct adapter *padapter, u8 offset, u8 *pval); u8 rtw_setrfintfs_cmd(struct adapter *padapter, u8 mode); u8 rtw_setrttbl_cmd(struct adapter *padapter, struct setratable_parm *prate_table); -u8 rtw_getrttbl_cmd(struct adapter *padapter, struct getratable_rsp *pval); u8 rtw_gettssi_cmd(struct adapter *padapter, u8 offset, u8 *pval); u8 rtw_setfwdig_cmd(struct adapter *padapter, u8 type); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 17/69] staging: rtl8188eu: Remove unused function rtw_c2h_wk_cmd()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c| 33 --- drivers/staging/rtl8188eu/include/rtw_cmd.h |2 -- 2 files changed, 35 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index 294c9e2..ec0990f 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -1741,39 +1741,6 @@ exit: } #endif -u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h_evt) -{ - struct cmd_obj *ph2c; - struct drvextra_cmd_parm *pdrvextra_cmd_parm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - u8 res = _SUCCESS; - - ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); - if (ph2c == NULL) { - res = _FAIL; - goto exit; - } - - pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_KERNEL); - if (pdrvextra_cmd_parm == NULL) { - kfree(ph2c); - res = _FAIL; - goto exit; - } - - pdrvextra_cmd_parm->ec_id = C2H_WK_CID; - pdrvextra_cmd_parm->type_size = c2h_evt ? 16 : 0; - pdrvextra_cmd_parm->pbuf = c2h_evt; - - init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); - - res = rtw_enqueue_cmd(pcmdpriv, ph2c); - -exit: - - return res; -} - u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf) { struct drvextra_cmd_parm *pdrvextra_cmd; diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index bb1f8f0..ca17145 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -776,8 +776,6 @@ u8 rtw_set_chplan_cmd(struct adapter *padapter, u8 chplan, u8 enqueue); u8 rtw_set_csa_cmd(struct adapter *padapter, u8 new_ch_no); u8 rtw_tdls_cmd(struct adapter *padapter, u8 *addr, u8 option); -u8 rtw_c2h_wk_cmd(struct adapter *padapter, u8 *c2h_evt); - u8 rtw_drvextra_cmd_hdl(struct adapter *padapter, unsigned char *pbuf); void rtw_survey_cmd_callback(struct adapter *padapter, struct cmd_obj *pcmd); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 20/69] staging: rtl8188eu: Remove unused function rtw_setbbreg_cmd()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c| 30 --- drivers/staging/rtl8188eu/include/rtw_cmd.h |1 - 2 files changed, 31 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index ba325f8..4d78e23 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -482,36 +482,6 @@ exit: return res; } -u8 rtw_setbbreg_cmd(struct adapter *padapter, u8 offset, u8 val) -{ - struct cmd_obj *ph2c; - struct writeBB_parm *pwritebbparm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - u8 res = _SUCCESS; - - ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); - if (ph2c == NULL) { - res = _FAIL; - goto exit; - } - pwritebbparm = kzalloc(sizeof(struct writeBB_parm), GFP_KERNEL); - - if (pwritebbparm == NULL) { - kfree(ph2c); - res = _FAIL; - goto exit; - } - - init_h2fwcmd_w_parm_no_rsp(ph2c, pwritebbparm, GEN_CMD_CODE(_SetBBReg)); - - pwritebbparm->offset = offset; - pwritebbparm->value = val; - - res = rtw_enqueue_cmd(pcmdpriv, ph2c); -exit: - return res; -} - u8 rtw_getbbreg_cmd(struct adapter *padapter, u8 offset, u8 *pval) { struct cmd_obj *ph2c; diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index 9bae5541..fe21838 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -742,7 +742,6 @@ u8 rtw_disassoc_cmd(struct adapter *padapter, u32 deauth_timeout_ms, u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infra networktype); u8 rtw_setdatarate_cmd(struct adapter *padapter, u8 *rateset); -u8 rtw_setbbreg_cmd(struct adapter *padapter, u8 offset, u8 val); u8 rtw_setrfreg_cmd(struct adapter *padapter, u8 offset, u32 val); u8 rtw_getbbreg_cmd(struct adapter *padapter, u8 offset, u8 *pval); u8 rtw_getrfreg_cmd(struct adapter *padapter, u8 offset, u8 *pval); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 21/69] staging: rtl8188eu: Remove unused function rtw_getbbreg_cmd()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c| 33 --- drivers/staging/rtl8188eu/include/rtw_cmd.h |1 - 2 files changed, 34 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index 4d78e23..96e5946 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -482,39 +482,6 @@ exit: return res; } -u8 rtw_getbbreg_cmd(struct adapter *padapter, u8 offset, u8 *pval) -{ - struct cmd_obj *ph2c; - struct readBB_parm *prdbbparm; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - u8 res = _SUCCESS; - - ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); - if (ph2c == NULL) { - res = _FAIL; - goto exit; - } - prdbbparm = kzalloc(sizeof(struct readBB_parm), GFP_KERNEL); - - if (prdbbparm == NULL) { - kfree(ph2c); - return _FAIL; - } - - INIT_LIST_HEAD(&ph2c->list); - ph2c->cmdcode = GEN_CMD_CODE(_GetBBReg); - ph2c->parmbuf = (unsigned char *)prdbbparm; - ph2c->cmdsz = sizeof(struct readBB_parm); - ph2c->rsp = pval; - ph2c->rspsz = sizeof(struct readBB_rsp); - - prdbbparm->offset = offset; - - res = rtw_enqueue_cmd(pcmdpriv, ph2c); -exit: - return res; -} - u8 rtw_setrfreg_cmd(struct adapter *padapter, u8 offset, u32 val) { struct cmd_obj *ph2c; diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index fe21838..f2ddb8a 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -743,7 +743,6 @@ u8 rtw_setopmode_cmd(struct adapter *padapter, enum ndis_802_11_network_infra networktype); u8 rtw_setdatarate_cmd(struct adapter *padapter, u8 *rateset); u8 rtw_setrfreg_cmd(struct adapter *padapter, u8 offset, u32 val); -u8 rtw_getbbreg_cmd(struct adapter *padapter, u8 offset, u8 *pval); u8 rtw_getrfreg_cmd(struct adapter *padapter, u8 offset, u8 *pval); u8 rtw_setrfintfs_cmd(struct adapter *padapter, u8 mode); u8 rtw_setrttbl_cmd(struct adapter *padapter, -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
[PATCH 19/69] staging: rtl8188eu: Remove unused function rtw_setphy_cmd()
Signed-off-by: navin patidar --- drivers/staging/rtl8188eu/core/rtw_cmd.c| 40 --- drivers/staging/rtl8188eu/include/rtw_cmd.h |1 - 2 files changed, 41 deletions(-) diff --git a/drivers/staging/rtl8188eu/core/rtw_cmd.c b/drivers/staging/rtl8188eu/core/rtw_cmd.c index cc8b82c..ba325f8 100644 --- a/drivers/staging/rtl8188eu/core/rtw_cmd.c +++ b/drivers/staging/rtl8188eu/core/rtw_cmd.c @@ -482,46 +482,6 @@ exit: return res; } -/* -unsigned char rtw_setphy_cmd(unsigned char *adapter) - -1. be called only after rtw_update_registrypriv_dev_network(~) or mp testing program -2. for AdHoc/Ap mode or mp mode? - -*/ -u8 rtw_setphy_cmd(struct adapter *padapter, u8 modem, u8 ch) -{ - struct cmd_obj *ph2c; - struct setphy_parm *psetphypara; - struct cmd_priv *pcmdpriv = &padapter->cmdpriv; - u8 res = _SUCCESS; - - - ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); - if (ph2c == NULL) { - res = _FAIL; - goto exit; - } - psetphypara = kzalloc(sizeof(struct setphy_parm), GFP_KERNEL); - - if (psetphypara == NULL) { - kfree(ph2c); - res = _FAIL; - goto exit; - } - - init_h2fwcmd_w_parm_no_rsp(ph2c, psetphypara, _SetPhy_CMD_); - - RT_TRACE(_module_rtl871x_cmd_c_, _drv_info_, ("CH =%d, modem =%d", ch, modem)); - - psetphypara->modem = modem; - psetphypara->rfchannel = ch; - - res = rtw_enqueue_cmd(pcmdpriv, ph2c); -exit: - return res; -} - u8 rtw_setbbreg_cmd(struct adapter *padapter, u8 offset, u8 val) { struct cmd_obj *ph2c; diff --git a/drivers/staging/rtl8188eu/include/rtw_cmd.h b/drivers/staging/rtl8188eu/include/rtw_cmd.h index fb999fc..9bae5541 100644 --- a/drivers/staging/rtl8188eu/include/rtw_cmd.h +++ b/drivers/staging/rtl8188eu/include/rtw_cmd.h @@ -733,7 +733,6 @@ u8 rtw_sitesurvey_cmd(struct adapter *padapter, struct ndis_802_11_ssid *ssid, u8 rtw_createbss_cmd(struct adapter *padapter); u8 rtw_createbss_cmd_ex(struct adapter *padapter, unsigned char *pbss, unsigned int sz); -u8 rtw_setphy_cmd(struct adapter *padapter, u8 modem, u8 ch); u8 rtw_setstakey_cmd(struct adapter *padapter, u8 *psta, u8 unicast_key); u8 rtw_clearstakey_cmd(struct adapter *padapter, u8 *psta, u8 entry, u8 enqueue); -- 1.7.10.4 ___ devel mailing list de...@linuxdriverproject.org http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel