solar lala shared photos with you

2012-07-19 Thread solar lala

Dear sir

We supply  solar PV system (including solar panels , frame,  
cable ,inverter and controller , power distribution cabinet)  with  
1.6$/w  FOB shenzhen.


 Email me or just call me directly if needed. Thank you!


Best wishes
  lala


Ecosol PV Tech Co., Ltd
Tel: 86-769-8279 2468
Fax: 86-769-879 2478
email:i...@ecsolsolar.com
skype:solarlala
msn:solarl...@hotmail.com
www.ecsolsolar.com
<>

Re: [PATCH V2 3/4] [SCSI] ufs: Add Platform glue driver for ufshcd

2012-07-19 Thread Namjae Jeon
2012/7/17 vinayak holikatti :
> On Mon, Jul 16, 2012 at 7:19 PM, Namjae Jeon  wrote:
>> Hi Vinayak.
>>> + * ufshcd_pltfrm_remove - remove platform driver routine
>>> + * @pdev: pointer to platform device handle
>>> + *
>>> + * Returns 0 on success, non-zero value on failure
>>> + */
>>> +static int __devexit ufshcd_pltfrm_remove(struct platform_device *pdev)
>>> +{
>>> + struct resource *mem_res;
>>> + struct resource *irq_res;
>>> + resource_size_t mem_size;
>>> + struct ufs_hba *hba =  platform_get_drvdata(pdev);
>>> +
>>> + ufshcd_remove(hba);
>>> + irq_res = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
>>> + if (!irq_res)
>>> + dev_err(&pdev->dev, "ufshcd: IRQ resource not available\n");
>>> + free_irq(irq_res->start, hba);
>> Is there no possibility of null pointer dereferencing error ?(irq_res->start)
>> I think that free_irq should be not called if irq_res is NULL.
> I agree, I have overlooked at this logic, the free_irq should have
> been in the else
> part of this section. I will make the modification in the next version
> of patches.
Okay.
You can add my
Reviewed-by: Namjae Jeon 
in these patchset

Thanks.
>>> + mem_res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
>> Looks mem_res is also same with upper case.
>> Thanks.
>>> + mem_size = resource_size(mem_res);
>>> + release_mem_region(mem_res->start, mem_size);
>>> + platform_set_drvdata(pdev, NULL);
>>> + return 0;
>>> +}
>>> +
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH V2 0/4] [SCSI] ufs: Adds glue drivers to ufshcd

2012-07-19 Thread vinayak holikatti
On Mon, Jul 16, 2012 at 9:52 PM, Arnd Bergmann  wrote:
> On Monday 16 July 2012, James Bottomley wrote:
>> On Fri, 2012-07-13 at 15:45 +, Arnd Bergmann wrote:
>> > On Friday 13 July 2012, Vinayak Holikatti wrote:
>> > > This patch set adds following features
>> > >  - Seprates PCI specific code from ufshcd.c to make it as core
>> > >  - Adds PCI glue driver ufshcd-pci.c
>> > >  - Adds Platform glue driver ufshcd-pltfrm.c
>> > >  - Update correct transfer size in Command UPIU
>> >
>> > Acked-by: Arnd Bergmann 
>>
>> I need a maintainer ack for this to go upstream.
>>
>> Also, looking at this, I think this patch series isn't bisectable:
>> Patch 1 removes PCI support and patch 2 adds it back in a different
>> form.  However, any PCI based UFS system would stop working if the
>> bisect landed at patch 1.  I think you can fix this just by combining
>> patches 1 and 2.
>
> I suggested to split the patch in two in a private review that we
> did on the linaro mailing list. I gave my Ack because the split
> was done, but I failed to notice that it was done differently
> from what I suggested in
>
> On Monday 02 July 2012, Arnd Bergmann wrote:
>> I would recommend that you split this patch into two separate
>> changesets, where you do all the changes to existing code in the
>> first patch, and only move but don't change code in the second one
>> that creates the new file.
>
> I agree that breaking bisectibility by ripping out the PCI code
> first is not good. The version 2 is not actually easier to review
> at all than the first version, it just splits the changes by
> file, which is pointless.
I will roll out another patch series which will address the current issue.
Firstly will modify existing code with PCI code and then in the second
move the code to new file ufshcd-pci.c
>
> Arnd
>
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[RESEND] [PATCH] [SCSI] mptfusion: Fix for issue - The device is removed in blocked state

2012-07-19 Thread sreekanth.reddy
Fix for issue - The device is removed in blocked state.

The device is set to blocked state when I/Os running and the cable is pulled.
Also if the device missing delay timer is started. When the device missing
delay timer expires, the device is removed but the device state is not set to
unblocked state. This will cause problems  if there are commands in block
queue.

To fix this issue, added code to unblock the device before removing it.

Signed-off-by: Sreekanth Reddy 
Cc: 
---

diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 551262e..4d02d5d 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -1088,7 +1088,13 @@ mptsas_target_reset(MPT_ADAPTER *ioc, u8 channel, u8 id)
 static void
 mptsas_block_io_sdev(struct scsi_device *sdev, void *data)
 {
-   scsi_device_set_state(sdev, SDEV_BLOCK);
+   scsi_internal_device_block(sdev);
+}
+
+static void
+mptsas_ublock_io_sdev(struct scsi_device *sdev, void *data)
+{
+   scsi_internal_device_unblock(sdev);
 }
 
 static void
@@ -1098,6 +1104,13 @@ mptsas_block_io_starget(struct scsi_target *starget)
starget_for_each_device(starget, NULL, mptsas_block_io_sdev);
 }
 
+static void
+mptsas_ublock_io_starget(struct scsi_target *starget)
+{
+   if (starget)
+   starget_for_each_device(starget, NULL, mptsas_ublock_io_sdev);
+}
+
 /**
  * mptsas_target_reset_queue
  *
@@ -1502,6 +1515,7 @@ mptsas_del_end_device(MPT_ADAPTER *ioc, struct 
mptsas_phyinfo *phy_info)
char *ds = NULL;
u8 fw_id;
u64 sas_address;
+   VirtTarget  *vtarget;
 
if (!phy_info)
return;
@@ -1545,6 +1559,13 @@ mptsas_del_end_device(MPT_ADAPTER *ioc, struct 
mptsas_phyinfo *phy_info)
phy_info->attached.id, phy_info->attached.phy_id,
(unsigned long long) sas_address);
 
+   vtarget = mptsas_find_vtarget(ioc,
+phy_info->attached.channel, phy_info->attached.id);
+   if (vtarget && vtarget->deleted == 1) {
+   mptsas_ublock_io_starget(vtarget->starget);
+   vtarget->deleted = 0; /* unblock IO */
+   }
+
port = mptsas_get_port(phy_info);
if (!port) {
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
diff --git a/drivers/message/fusion/mptsas.h b/drivers/message/fusion/mptsas.h
index 57e86ab..1567f57 100644
--- a/drivers/message/fusion/mptsas.h
+++ b/drivers/message/fusion/mptsas.h
@@ -189,4 +189,7 @@ struct mptsas_enclosure {
 };
 
 /*}-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
+
+extern int scsi_internal_device_block(struct scsi_device *sdev);
+extern int scsi_internal_device_unblock(struct scsi_device *sdev);
 #endif
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Fix for issue - The device is removed in blocked state

2012-07-19 Thread sreekanth.reddy
Fix for issue - The device is removed in blocked state.

The device is set to blocked state when I/Os running and the cable is pulled.
Also if the device missing delay timer is started. When the device missing
delay timer expires, the device is removed but the device state is not set to
unblocked state. This will cause problems  if there are commands in block
queue.

To fix this issue, added code to unblock the device before removing it.

Signed-off-by: Sreekanth Reddy 
Cc: 
---

diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
index 551262e..4d02d5d 100644
--- a/drivers/message/fusion/mptsas.c
+++ b/drivers/message/fusion/mptsas.c
@@ -1088,7 +1088,13 @@ mptsas_target_reset(MPT_ADAPTER *ioc, u8 channel, u8 id)
 static void
 mptsas_block_io_sdev(struct scsi_device *sdev, void *data)
 {
-   scsi_device_set_state(sdev, SDEV_BLOCK);
+   scsi_internal_device_block(sdev);
+}
+
+static void
+mptsas_ublock_io_sdev(struct scsi_device *sdev, void *data)
+{
+   scsi_internal_device_unblock(sdev);
 }
 
 static void
@@ -1098,6 +1104,13 @@ mptsas_block_io_starget(struct scsi_target *starget)
starget_for_each_device(starget, NULL, mptsas_block_io_sdev);
 }
 
+static void
+mptsas_ublock_io_starget(struct scsi_target *starget)
+{
+   if (starget)
+   starget_for_each_device(starget, NULL, mptsas_ublock_io_sdev);
+}
+
 /**
  * mptsas_target_reset_queue
  *
@@ -1502,6 +1515,7 @@ mptsas_del_end_device(MPT_ADAPTER *ioc, struct 
mptsas_phyinfo *phy_info)
char *ds = NULL;
u8 fw_id;
u64 sas_address;
+   VirtTarget  *vtarget;
 
if (!phy_info)
return;
@@ -1545,6 +1559,13 @@ mptsas_del_end_device(MPT_ADAPTER *ioc, struct 
mptsas_phyinfo *phy_info)
phy_info->attached.id, phy_info->attached.phy_id,
(unsigned long long) sas_address);
 
+   vtarget = mptsas_find_vtarget(ioc,
+phy_info->attached.channel, phy_info->attached.id);
+   if (vtarget && vtarget->deleted == 1) {
+   mptsas_ublock_io_starget(vtarget->starget);
+   vtarget->deleted = 0; /* unblock IO */
+   }
+
port = mptsas_get_port(phy_info);
if (!port) {
dfailprintk(ioc, printk(MYIOC_s_ERR_FMT
diff --git a/drivers/message/fusion/mptsas.h b/drivers/message/fusion/mptsas.h
index 57e86ab..1567f57 100644
--- a/drivers/message/fusion/mptsas.h
+++ b/drivers/message/fusion/mptsas.h
@@ -189,4 +189,7 @@ struct mptsas_enclosure {
 };
 
 /*}-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
+
+extern int scsi_internal_device_block(struct scsi_device *sdev);
+extern int scsi_internal_device_unblock(struct scsi_device *sdev);
 #endif
--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC-v2 0/4] tcm_vhost+cmwq fabric driver code for-3.6

2012-07-19 Thread Paolo Bonzini
Il 19/07/2012 09:28, James Bottomley ha scritto:
>> > INQUIRY responses (at least vendor/product/type) should not change.
> INQUIRY responses often change for arrays because a firmware upgrade
> enables new features and new features have to declare themselves,
> usually in the INQUIRY data.  What you mean, I think, is that previously
> exposed features in INQUIRY data, as well as strings
> (vendor/product/type, as you say), shouldn't change, but unexposed data
> (read 0 in the fields) may.

What I meant is that it's unlikely that Windows fingerprinting is using
anything but vendor/product/type, because everything else can change.

Paolo

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC-v2 0/4] tcm_vhost+cmwq fabric driver code for-3.6

2012-07-19 Thread James Bottomley
On Thu, 2012-07-19 at 08:00 +0200, Paolo Bonzini wrote:
> Il 18/07/2012 21:12, Anthony Liguori ha scritto:
>  Windows does this with a points system and I do believe that INQUIRY
> > responses from any local disks are included in this tally.
> 
> INQUIRY responses (at least vendor/product/type) should not change.

INQUIRY responses often change for arrays because a firmware upgrade
enables new features and new features have to declare themselves,
usually in the INQUIRY data.  What you mean, I think, is that previously
exposed features in INQUIRY data, as well as strings
(vendor/product/type, as you say), shouldn't change, but unexposed data
(read 0 in the fields) may.

James


--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html