Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-14 Thread Greg Kroah-Hartman
On Wed, Nov 12, 2014 at 09:27:50AM -0800, Christoph Hellwig wrote:
> > +static int stex_reboot_callback(struct notifier_block *self,
> > + unsigned long val,
> > + void *data)
> > +{
> > +   if (val == SYS_RESTART)
> > +   isRestart = 1;
> > +   return NOTIFY_OK;
> > +}
> > 
> > @@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
> >  {
> > struct st_hba *hba = pci_get_drvdata(pdev);
> > 
> > -   stex_hba_stop(hba);
> > +   if (hba->yellowstone == 1)
> > +   stex_hba_stop(hba, ST_IGNORED);
> > +   else {
> > +   if (isRestart)
> > +   stex_hba_stop(hba, ST_S6);
> > +   else
> > +   stex_hba_stop(hba, ST_S5);
> > +   }
> 
> This sort of check for reboot vs restart isn't really something
> we want in drivers.  I don't really know how we could find this
> out assuming we even want drivers to behave differently.
> 
> Maybe Greg or someone on lkml has an idea how to best handle this case.

What is "this case"?

And yes, I agree, we shouldn't care, in drivers, about reboot vs.
restart, as they should both be the same thing, along with "disconnect",
right?

thanks,

greg k-h
--
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/


Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-14 Thread Greg Kroah-Hartman
On Wed, Nov 12, 2014 at 09:27:50AM -0800, Christoph Hellwig wrote:
  +static int stex_reboot_callback(struct notifier_block *self,
  + unsigned long val,
  + void *data)
  +{
  +   if (val == SYS_RESTART)
  +   isRestart = 1;
  +   return NOTIFY_OK;
  +}
  
  @@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
   {
  struct st_hba *hba = pci_get_drvdata(pdev);
  
  -   stex_hba_stop(hba);
  +   if (hba-yellowstone == 1)
  +   stex_hba_stop(hba, ST_IGNORED);
  +   else {
  +   if (isRestart)
  +   stex_hba_stop(hba, ST_S6);
  +   else
  +   stex_hba_stop(hba, ST_S5);
  +   }
 
 This sort of check for reboot vs restart isn't really something
 we want in drivers.  I don't really know how we could find this
 out assuming we even want drivers to behave differently.
 
 Maybe Greg or someone on lkml has an idea how to best handle this case.

What is this case?

And yes, I agree, we shouldn't care, in drivers, about reboot vs.
restart, as they should both be the same thing, along with disconnect,
right?

thanks,

greg k-h
--
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/


Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-13 Thread Charles Chiou



On 11/13/2014 06:07 PM, Charles Chiou wrote:



On 11/13/2014 01:27 AM, Christoph Hellwig wrote:

+static int stex_reboot_callback(struct notifier_block *self,
+  unsigned long val,
+  void *data)
+{
+if (val == SYS_RESTART)
+isRestart = 1;
+return NOTIFY_OK;
+}

@@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
  {
  struct st_hba *hba = pci_get_drvdata(pdev);

-stex_hba_stop(hba);
+if (hba->yellowstone == 1)
+stex_hba_stop(hba, ST_IGNORED);
+else {
+if (isRestart)
+stex_hba_stop(hba, ST_S6);
+else
+stex_hba_stop(hba, ST_S5);
+}


This sort of check for reboot vs restart isn't really something
we want in drivers.  I don't really know how we could find this
out assuming we even want drivers to behave differently.

Maybe Greg or someone on lkml has an idea how to best handle this case.



Hi, we don't attempt to check for restart vs reboot,
sorry for confusing. When host is going to restart/reboot, Pegasus need 
to restart too. Pegasus use same flow for restart and reboot.


Maybe I could change variable name "isRestart" to "isReboot"?

--
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/


Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-13 Thread Charles Chiou



On 11/13/2014 01:27 AM, Christoph Hellwig wrote:

+static int stex_reboot_callback(struct notifier_block *self,
+ unsigned long val,
+ void *data)
+{
+   if (val == SYS_RESTART)
+   isRestart = 1;
+   return NOTIFY_OK;
+}

@@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
  {
struct st_hba *hba = pci_get_drvdata(pdev);

-   stex_hba_stop(hba);
+   if (hba->yellowstone == 1)
+   stex_hba_stop(hba, ST_IGNORED);
+   else {
+   if (isRestart)
+   stex_hba_stop(hba, ST_S6);
+   else
+   stex_hba_stop(hba, ST_S5);
+   }


This sort of check for reboot vs restart isn't really something
we want in drivers.  I don't really know how we could find this
out assuming we even want drivers to behave differently.

Maybe Greg or someone on lkml has an idea how to best handle this case.




I have no idea to distinguish OS is going to reboot or shut down without 
this approach. I'll try to find it out.

Charles
--
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/


Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-13 Thread Charles Chiou



On 11/13/2014 01:27 AM, Christoph Hellwig wrote:

+static int stex_reboot_callback(struct notifier_block *self,
+ unsigned long val,
+ void *data)
+{
+   if (val == SYS_RESTART)
+   isRestart = 1;
+   return NOTIFY_OK;
+}

@@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
  {
struct st_hba *hba = pci_get_drvdata(pdev);

-   stex_hba_stop(hba);
+   if (hba-yellowstone == 1)
+   stex_hba_stop(hba, ST_IGNORED);
+   else {
+   if (isRestart)
+   stex_hba_stop(hba, ST_S6);
+   else
+   stex_hba_stop(hba, ST_S5);
+   }


This sort of check for reboot vs restart isn't really something
we want in drivers.  I don't really know how we could find this
out assuming we even want drivers to behave differently.

Maybe Greg or someone on lkml has an idea how to best handle this case.




I have no idea to distinguish OS is going to reboot or shut down without 
this approach. I'll try to find it out.

Charles
--
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/


Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-13 Thread Charles Chiou



On 11/13/2014 06:07 PM, Charles Chiou wrote:



On 11/13/2014 01:27 AM, Christoph Hellwig wrote:

+static int stex_reboot_callback(struct notifier_block *self,
+  unsigned long val,
+  void *data)
+{
+if (val == SYS_RESTART)
+isRestart = 1;
+return NOTIFY_OK;
+}

@@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
  {
  struct st_hba *hba = pci_get_drvdata(pdev);

-stex_hba_stop(hba);
+if (hba-yellowstone == 1)
+stex_hba_stop(hba, ST_IGNORED);
+else {
+if (isRestart)
+stex_hba_stop(hba, ST_S6);
+else
+stex_hba_stop(hba, ST_S5);
+}


This sort of check for reboot vs restart isn't really something
we want in drivers.  I don't really know how we could find this
out assuming we even want drivers to behave differently.

Maybe Greg or someone on lkml has an idea how to best handle this case.



Hi, we don't attempt to check for restart vs reboot,
sorry for confusing. When host is going to restart/reboot, Pegasus need 
to restart too. Pegasus use same flow for restart and reboot.


Maybe I could change variable name isRestart to isReboot?

--
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/


Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-12 Thread Christoph Hellwig
> +static int stex_reboot_callback(struct notifier_block *self,
> +   unsigned long val,
> +   void *data)
> +{
> + if (val == SYS_RESTART)
> + isRestart = 1;
> + return NOTIFY_OK;
> +}
> 
> @@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
>  {
>   struct st_hba *hba = pci_get_drvdata(pdev);
> 
> - stex_hba_stop(hba);
> + if (hba->yellowstone == 1)
> + stex_hba_stop(hba, ST_IGNORED);
> + else {
> + if (isRestart)
> + stex_hba_stop(hba, ST_S6);
> + else
> + stex_hba_stop(hba, ST_S5);
> + }

This sort of check for reboot vs restart isn't really something
we want in drivers.  I don't really know how we could find this
out assuming we even want drivers to behave differently.

Maybe Greg or someone on lkml has an idea how to best handle this case.
--
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/


Re: [V2 PATCH 3/4] scsi:stex.c Add reboot support

2014-11-12 Thread Christoph Hellwig
 +static int stex_reboot_callback(struct notifier_block *self,
 +   unsigned long val,
 +   void *data)
 +{
 + if (val == SYS_RESTART)
 + isRestart = 1;
 + return NOTIFY_OK;
 +}
 
 @@ -1832,7 +1859,14 @@ static void stex_shutdown(struct pci_dev *pdev)
  {
   struct st_hba *hba = pci_get_drvdata(pdev);
 
 - stex_hba_stop(hba);
 + if (hba-yellowstone == 1)
 + stex_hba_stop(hba, ST_IGNORED);
 + else {
 + if (isRestart)
 + stex_hba_stop(hba, ST_S6);
 + else
 + stex_hba_stop(hba, ST_S5);
 + }

This sort of check for reboot vs restart isn't really something
we want in drivers.  I don't really know how we could find this
out assuming we even want drivers to behave differently.

Maybe Greg or someone on lkml has an idea how to best handle this case.
--
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/