Re: [PATCH net-next] hv_netvsc: Fix the list processing for network change event

2016-04-24 Thread David Miller
From: Haiyang Zhang 
Date: Thu, 21 Apr 2016 16:13:01 -0700

> RNDIS_STATUS_NETWORK_CHANGE event is handled as two "half events" --
> media disconnect & connect. The second half should be added to the list
> head, not to the tail. So all events are processed in normal order.
> 
> Signed-off-by: Haiyang Zhang 
> Reviewed-by: K. Y. Srinivasan 

Applied, thanks.
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH v2] rtl8712: Fixed alignment to match open parenthesis

2016-04-24 Thread Parth Sane
Added missing signed off by line and fixed alignment to match 
open parenthesis.

Signed-off-by: Parth Sane 
---
 drivers/staging/rtl8712/hal_init.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8712/hal_init.c 
b/drivers/staging/rtl8712/hal_init.c
index 0c76fbc..0dd458d 100644
--- a/drivers/staging/rtl8712/hal_init.c
+++ b/drivers/staging/rtl8712/hal_init.c
@@ -197,8 +197,8 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
   0x);
memcpy(ppayload, ptr, dump_imem_sz);
r8712_write_mem(padapter, RTL8712_DMA_VOQ,
- dump_imem_sz + TXDESC_SIZE,
- (u8 *)ptx_desc);
+   dump_imem_sz + TXDESC_SIZE,
+   (u8 *)ptx_desc);
ptr += dump_imem_sz;
imem_sz -= dump_imem_sz;
} while (imem_sz > 0);
@@ -226,7 +226,8 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
   0x);
memcpy(ppayload, ptr, dump_emem_sz);
r8712_write_mem(padapter, RTL8712_DMA_VOQ,
- dump_emem_sz + TXDESC_SIZE, (u8 *)ptx_desc);
+   dump_emem_sz + TXDESC_SIZE,
+   (u8 *)ptx_desc);
ptr += dump_emem_sz;
emem_sz -= dump_emem_sz;
} while (emem_sz > 0);
@@ -278,7 +279,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
ptx_desc->txdw0 |= cpu_to_le32(BIT(28));
memcpy(ppayload, &fwhdr.fwpriv, fwhdr.fw_priv_sz);
r8712_write_mem(padapter, RTL8712_DMA_VOQ,
- fwhdr.fw_priv_sz + TXDESC_SIZE, (u8 *)ptx_desc);
+   fwhdr.fw_priv_sz + TXDESC_SIZE, (u8 *)ptx_desc);
 
/* polling dmem code done */
i = 100;
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Important message..

2016-04-24 Thread Martin Cooper
American Red Cross wishes to inform interested and serious persons that our Job 
Employment Scheme continues.
Our primary target has ever been to reconstruct affected areas and provide 
relief to flood victims in the Philippine Typhoon areas.
 
Vacancies available are listed bellow:

-Electrical Engineer.
-Crane Operator.
-Dredging Crews.
-QC Engineer. (Electrical, Civil, Mechanical)
-Bulldozer Operator / Shovel Operator/ Loader Operator /
-Pipe Fitter / Fabricator / Piping Foreman / Charge Hand.
-Instrument Technician / Instrument Fitter
-Plumber / Plumber Foreman/ Steel Erector
-Safety Officer
-Welders
-Project Managers
-Required technician for repairing Refrigerator Washing machine and Ovans
-Registered Nurse


Interested Applicants should send their resume to ( 
recrui...@intlrecruitmentscheme.com ) 

Contact us below for more details.
 
Regards,

Mr. Martin Cooper
Coordinator
Flood dept.
American Red Cross,
Washington, DC 98148
E-mail: recrui...@intlrecruitmentscheme.com
___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: wilc1000: Freed memory in case of error

2016-04-24 Thread Claudiu Beznea
This patch frees memory allocated inside wilc_wlan_txq_add_cfg_pkt()
in case wilc_wlan_txq_add_to_head() fails.

Signed-off-by: Claudiu Beznea 
---
 drivers/staging/wilc1000/wilc_wlan.c | 5 -
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/wilc1000/wilc_wlan.c 
b/drivers/staging/wilc1000/wilc_wlan.c
index 7da3b4a..11e16d5 100644
--- a/drivers/staging/wilc1000/wilc_wlan.c
+++ b/drivers/staging/wilc1000/wilc_wlan.c
@@ -325,8 +325,11 @@ static int wilc_wlan_txq_add_cfg_pkt(struct wilc_vif *vif, 
u8 *buffer,
tqe->priv = NULL;
tqe->tcp_pending_ack_idx = NOT_TCP_ACK;
 
-   if (wilc_wlan_txq_add_to_head(vif, tqe))
+   if (wilc_wlan_txq_add_to_head(vif, tqe)) {
+   kfree(tqe);
return 0;
+   }
+
return 1;
 }
 
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] vme: add vme_init_bridge for common bridge init

2016-04-24 Thread Aaron Sierra
Consolidate vme_bridge structure setup that every bridge was required
to do itself. This came about because .irq_mtx is only used within the
VME core, but was required to be setup externally.

This returns the structure passed in to support shorthand like this:

bridge = vme_init_bridge(&priv->bridge);

Signed-off-by: Aaron Sierra 
---
 drivers/vme/bridges/vme_ca91cx42.c |  9 +
 drivers/vme/bridges/vme_tsi148.c   |  9 +
 drivers/vme/vme.c  | 14 ++
 drivers/vme/vme_bridge.h   |  1 +
 4 files changed, 17 insertions(+), 16 deletions(-)

diff --git a/drivers/vme/bridges/vme_ca91cx42.c 
b/drivers/vme/bridges/vme_ca91cx42.c
index 5fbeab3..9f2c834 100644
--- a/drivers/vme/bridges/vme_ca91cx42.c
+++ b/drivers/vme/bridges/vme_ca91cx42.c
@@ -204,10 +204,6 @@ static int ca91cx42_irq_init(struct vme_bridge 
*ca91cx42_bridge)
/* Need pdev */
pdev = to_pci_dev(ca91cx42_bridge->parent);
 
-   INIT_LIST_HEAD(&ca91cx42_bridge->vme_error_handlers);
-
-   mutex_init(&ca91cx42_bridge->irq_mtx);
-
/* Disable interrupts from PCI to VME */
iowrite32(0, bridge->base + VINT_EN);
 
@@ -1626,6 +1622,7 @@ static int ca91cx42_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
retval = -ENOMEM;
goto err_struct;
}
+   vme_init_bridge(ca91cx42_bridge);
 
ca91cx42_device = kzalloc(sizeof(struct ca91cx42_driver), GFP_KERNEL);
 
@@ -1686,7 +1683,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
}
 
/* Add master windows to list */
-   INIT_LIST_HEAD(&ca91cx42_bridge->master_resources);
for (i = 0; i < CA91C142_MAX_MASTER; i++) {
master_image = kmalloc(sizeof(struct vme_master_resource),
GFP_KERNEL);
@@ -1713,7 +1709,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
}
 
/* Add slave windows to list */
-   INIT_LIST_HEAD(&ca91cx42_bridge->slave_resources);
for (i = 0; i < CA91C142_MAX_SLAVE; i++) {
slave_image = kmalloc(sizeof(struct vme_slave_resource),
GFP_KERNEL);
@@ -1741,7 +1736,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
}
 
/* Add dma engines to list */
-   INIT_LIST_HEAD(&ca91cx42_bridge->dma_resources);
for (i = 0; i < CA91C142_MAX_DMA; i++) {
dma_ctrlr = kmalloc(sizeof(struct vme_dma_resource),
GFP_KERNEL);
@@ -1764,7 +1758,6 @@ static int ca91cx42_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
}
 
/* Add location monitor to list */
-   INIT_LIST_HEAD(&ca91cx42_bridge->lm_resources);
lm = kmalloc(sizeof(struct vme_lm_resource), GFP_KERNEL);
if (lm == NULL) {
dev_err(&pdev->dev, "Failed to allocate memory for "
diff --git a/drivers/vme/bridges/vme_tsi148.c b/drivers/vme/bridges/vme_tsi148.c
index 6052483..4bc5d45 100644
--- a/drivers/vme/bridges/vme_tsi148.c
+++ b/drivers/vme/bridges/vme_tsi148.c
@@ -314,10 +314,6 @@ static int tsi148_irq_init(struct vme_bridge 
*tsi148_bridge)
 
bridge = tsi148_bridge->driver_priv;
 
-   INIT_LIST_HEAD(&tsi148_bridge->vme_error_handlers);
-
-   mutex_init(&tsi148_bridge->irq_mtx);
-
result = request_irq(pdev->irq,
 tsi148_irqhandler,
 IRQF_SHARED,
@@ -2301,6 +2297,7 @@ static int tsi148_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
retval = -ENOMEM;
goto err_struct;
}
+   vme_init_bridge(tsi148_bridge);
 
tsi148_device = kzalloc(sizeof(struct tsi148_driver), GFP_KERNEL);
if (tsi148_device == NULL) {
@@ -2387,7 +2384,6 @@ static int tsi148_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
}
 
/* Add master windows to list */
-   INIT_LIST_HEAD(&tsi148_bridge->master_resources);
for (i = 0; i < master_num; i++) {
master_image = kmalloc(sizeof(struct vme_master_resource),
GFP_KERNEL);
@@ -2417,7 +2413,6 @@ static int tsi148_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
}
 
/* Add slave windows to list */
-   INIT_LIST_HEAD(&tsi148_bridge->slave_resources);
for (i = 0; i < TSI148_MAX_SLAVE; i++) {
slave_image = kmalloc(sizeof(struct vme_slave_resource),
GFP_KERNEL);
@@ -2442,7 +2437,6 @@ static int tsi148_probe(struct pci_dev *pdev, const 
struct pci_device_id *id)
}
 
/* Add dma engines to list */
-   INIT_LIST_HEAD(&tsi148_bridge->dma_resources);
for (i = 0; i < TSI148_MAX_DMA; i++) {
dma_ctrlr = kmalloc(sizeof(struct vme_dma_resource),
GFP_KERNEL);
@@ -2467,7 +2461,6 @@ static int tsi148_pro

[PATCH] Staging: android: modify memory allocation style in ion_test.c

2016-04-24 Thread Ben Marsh
Modifies the memory allocation style ion_test.c in order to remove a
checkpatch.pl warning

Signed-off-by: Ben Marsh 
---
 drivers/staging/android/ion/ion_test.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/staging/android/ion/ion_test.c 
b/drivers/staging/android/ion/ion_test.c
index 83a3af0..5a396a1 100644
--- a/drivers/staging/android/ion/ion_test.c
+++ b/drivers/staging/android/ion/ion_test.c
@@ -208,7 +208,7 @@ static int ion_test_open(struct inode *inode, struct file 
*file)
struct ion_test_data *data;
struct miscdevice *miscdev = file->private_data;
 
-   data = kzalloc(sizeof(struct ion_test_data), GFP_KERNEL);
+   data = kzalloc(sizeof(*data), GFP_KERNEL);
if (!data)
return -ENOMEM;
 
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] Staging: wlan-ng: memory allocated inside mkimage() is not freed if subsequent calls fails.

2016-04-24 Thread Claudiu Beznea
This patch frees memory allocated inside mkimage() in case mkimage()
or any other subsequent calls inside prism2_fwapply() from prism2fw.c
file fails. To fix this I introduces goto labels where the free
operation is done in case some operations fails. After the introduction
of goto labels has been done, in order to use the same return path,
"return x" instuctions were replaced with "goto" instuctions.

Signed-off-by: Claudiu Beznea 
---
 drivers/staging/wlan-ng/prism2fw.c | 28 
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/drivers/staging/wlan-ng/prism2fw.c 
b/drivers/staging/wlan-ng/prism2fw.c
index 8564d9e..56bffd9 100644
--- a/drivers/staging/wlan-ng/prism2fw.c
+++ b/drivers/staging/wlan-ng/prism2fw.c
@@ -278,7 +278,8 @@ static int prism2_fwapply(const struct ihex_binrec *rfptr,
/* Build the PDA we're going to use. */
if (read_cardpda(&pda, wlandev)) {
netdev_err(wlandev->netdev, "load_cardpda failed, exiting.\n");
-   return 1;
+   result = 1;
+   goto out;
}
 
/* read the card's PRI-SUP */
@@ -315,55 +316,58 @@ static int prism2_fwapply(const struct ihex_binrec *rfptr,
if (result) {
netdev_err(wlandev->netdev,
   "Failed to read the data exiting.\n");
-   return 1;
+   goto out;
}
 
result = validate_identity();
-
if (result) {
netdev_err(wlandev->netdev, "Incompatible firmware image.\n");
-   return 1;
+   goto out;
}
 
if (startaddr == 0x) {
netdev_err(wlandev->netdev,
   "Can't RAM download a Flash image!\n");
-   return 1;
+   result = 1;
+   goto out;
}
 
/* Make the image chunks */
result = mkimage(fchunk, &nfchunks);
if (result) {
netdev_err(wlandev->netdev, "Failed to make image chunk.\n");
-   return 1;
+   goto free_chunks;
}
 
/* Do any plugging */
result = plugimage(fchunk, nfchunks, s3plug, ns3plug, &pda);
if (result) {
netdev_err(wlandev->netdev, "Failed to plug data.\n");
-   return 1;
+   goto free_chunks;
}
 
/* Insert any CRCs */
-   if (crcimage(fchunk, nfchunks, s3crc, ns3crc)) {
+   result = crcimage(fchunk, nfchunks, s3crc, ns3crc);
+   if (result) {
netdev_err(wlandev->netdev, "Failed to insert all CRCs\n");
-   return 1;
+   goto free_chunks;
}
 
/* Write the image */
result = writeimage(wlandev, fchunk, nfchunks);
if (result) {
netdev_err(wlandev->netdev, "Failed to ramwrite image data.\n");
-   return 1;
+   goto free_chunks;
}
 
+   netdev_info(wlandev->netdev, "prism2_usb: firmware loading 
finished.\n");
+
+free_chunks:
/* clear any allocated memory */
free_chunks(fchunk, &nfchunks);
free_srecs();
 
-   netdev_info(wlandev->netdev, "prism2_usb: firmware loading 
finished.\n");
-
+out:
return result;
 }
 
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


Re: [PATCH v12 1/2] kernel.h: add u64_to_user_ptr()

2016-04-24 Thread Maarten Lankhorst
Op 22-04-16 om 17:13 schreef Rob Clark:
> On Thu, Apr 21, 2016 at 11:38 AM, Gustavo Padovan  wrote:
>> From: Gustavo Padovan 
>>
>> This function had copies in 3 different files. Unify them in kernel.h.
>>
>> Cc: Joe Perches 
>> Cc: Andrew Morton 
>> Cc: David Airlie 
>> Cc: Daniel Vetter 
>> Cc: Rob Clark 
>> Signed-off-by: Gustavo Padovan 
> Acked-by: Rob Clark 
>
Looking much better.
Acked-by: Maarten Lankhorst 

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel


[PATCH] rtl8712: Fixed alignment to match open parenthesis

2016-04-24 Thread Parth Sane
Fixed parenthesis alignment checkpatch checks as per kernel coding style
guidelines in hal_init.c
 
---
 drivers/staging/rtl8712/hal_init.c | 9 +
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/rtl8712/hal_init.c 
b/drivers/staging/rtl8712/hal_init.c
index 0c76fbc..0dd458d 100644
--- a/drivers/staging/rtl8712/hal_init.c
+++ b/drivers/staging/rtl8712/hal_init.c
@@ -197,8 +197,8 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
   0x);
memcpy(ppayload, ptr, dump_imem_sz);
r8712_write_mem(padapter, RTL8712_DMA_VOQ,
- dump_imem_sz + TXDESC_SIZE,
- (u8 *)ptx_desc);
+   dump_imem_sz + TXDESC_SIZE,
+   (u8 *)ptx_desc);
ptr += dump_imem_sz;
imem_sz -= dump_imem_sz;
} while (imem_sz > 0);
@@ -226,7 +226,8 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
   0x);
memcpy(ppayload, ptr, dump_emem_sz);
r8712_write_mem(padapter, RTL8712_DMA_VOQ,
- dump_emem_sz + TXDESC_SIZE, (u8 *)ptx_desc);
+   dump_emem_sz + TXDESC_SIZE,
+   (u8 *)ptx_desc);
ptr += dump_emem_sz;
emem_sz -= dump_emem_sz;
} while (emem_sz > 0);
@@ -278,7 +279,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
ptx_desc->txdw0 |= cpu_to_le32(BIT(28));
memcpy(ppayload, &fwhdr.fwpriv, fwhdr.fw_priv_sz);
r8712_write_mem(padapter, RTL8712_DMA_VOQ,
- fwhdr.fw_priv_sz + TXDESC_SIZE, (u8 *)ptx_desc);
+   fwhdr.fw_priv_sz + TXDESC_SIZE, (u8 *)ptx_desc);
 
/* polling dmem code done */
i = 100;
-- 
1.9.1

___
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel