( Compensation Reinbursement )

2017-11-01 Thread United Nations
View the enclosed file for your Compensation Reinbursement

Code Payment.pdf
Description: Adobe PDF document


[no subject]

2017-11-01 Thread Roy Cockrum Foundation


Hallo, Sie machen eine Spende von 4.800.000,00 EUR, ich habe die America Lotto 
in Amerika im Wert von 259,9 Millionen Dollar gewonnen, und ich gebe einen Teil 
davon fünf glückliche Menschen und Wohltätigkeits-Häuser in Erinnerung an meine 
verstorbene Frau, die an Krebs gestorben ist. Kontaktieren Sie mich für weitere 
Informationen: roycockrum2...@gmail.com


Re: [PATCH 0/4] scsi: qla2xxx: Convert timers to use timer_setup()

2017-11-01 Thread Madhani, Himanshu
Hi Kees, 

> On Nov 1, 2017, at 11:46 AM, Kees Cook  wrote:
> 
> On Tue, Oct 31, 2017 at 12:13 PM, Kees Cook  wrote:
>> This breaks out the logical steps to convert the qla2xxx timers:
>> 
>> 1) init_timer() -> setup_timer()
>> 2) refactor qla2x00_start_timer() to not pass callback as argument
>> 3) qla2x00_timer() to use timer_setup()
>> 4) qla2x00_sp_timeout() to use timer_setup()
>> 
>> The resulting diff is identical to the patch that appears to lock up
>> the driver. This should help identify which step causes this behavior.
> 
> Hi, just curious if there's been any progress on debugging the issue
> you saw with this series?
> 

Sorry for delay. I will test this series later today and post update. 

> Thanks!
> 
> -Kees
> 
> -- 
> Kees Cook
> Pixel Security

Thanks,
- Himanshu



Re: [PATCH 0/4] scsi: qla2xxx: Convert timers to use timer_setup()

2017-11-01 Thread Kees Cook
On Tue, Oct 31, 2017 at 12:13 PM, Kees Cook  wrote:
> This breaks out the logical steps to convert the qla2xxx timers:
>
> 1) init_timer() -> setup_timer()
> 2) refactor qla2x00_start_timer() to not pass callback as argument
> 3) qla2x00_timer() to use timer_setup()
> 4) qla2x00_sp_timeout() to use timer_setup()
>
> The resulting diff is identical to the patch that appears to lock up
> the driver. This should help identify which step causes this behavior.

Hi, just curious if there's been any progress on debugging the issue
you saw with this series?

Thanks!

-Kees

-- 
Kees Cook
Pixel Security


Re: [PATCH v2 2/8] crypto: scompress - use sgl_alloc() and sgl_free()

2017-11-01 Thread Ard Biesheuvel
On 1 November 2017 at 15:45, Bart Van Assche  wrote:
> On Wed, 2017-11-01 at 15:17 +, Ard Biesheuvel wrote:
>> On 1 November 2017 at 14:50, Bart Van Assche  wrote:
>> > On Mon, 2017-10-16 at 15:49 -0700, Bart Van Assche wrote:
>> > > Use the sgl_alloc() and sgl_free() functions instead of open coding
>> > > these functions.
>> > >
>> > > Signed-off-by: Bart Van Assche 
>> > > Cc: Ard Biesheuvel 
>> > > Cc: Herbert Xu 
>> >
>> > Ard and/or Herbert, can you please have a look at this patch and let us 
>> > know
>> > whether or not it looks fine to you?
>>
>> The patch itself does not look unreasonable, but I can't find
>> sgl_alloc() anywhere in the source tree. Given that you have cc'ed me
>> on this patch only, I can only assume that you are adding this as part
>> of the series, but without any context, I can't really review this,
>> sorry.
>
> Hello Ard,
>
> Do you expect to be Cc-ed personally or is Cc-ing the linux-crypto mailing
> list sufficient? The linux-crypto mailing list was Cc-ed for the entire patch
> series as one can see here:
> https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg28485.html.
>

I guess people's opinions may differ regarding what they want to be
cc'ed on, but in general, you should at least cc everyone on the cover
letter if you cc them on individual patches, and in my case, I'd
rather have the whole series even if only a single patch is relevant
to me.


Re: [PATCH v2 2/8] crypto: scompress - use sgl_alloc() and sgl_free()

2017-11-01 Thread Bart Van Assche
On Wed, 2017-11-01 at 15:17 +, Ard Biesheuvel wrote:
> On 1 November 2017 at 14:50, Bart Van Assche  wrote:
> > On Mon, 2017-10-16 at 15:49 -0700, Bart Van Assche wrote:
> > > Use the sgl_alloc() and sgl_free() functions instead of open coding
> > > these functions.
> > > 
> > > Signed-off-by: Bart Van Assche 
> > > Cc: Ard Biesheuvel 
> > > Cc: Herbert Xu 
> > 
> > Ard and/or Herbert, can you please have a look at this patch and let us know
> > whether or not it looks fine to you?
> 
> The patch itself does not look unreasonable, but I can't find
> sgl_alloc() anywhere in the source tree. Given that you have cc'ed me
> on this patch only, I can only assume that you are adding this as part
> of the series, but without any context, I can't really review this,
> sorry.

Hello Ard,

Do you expect to be Cc-ed personally or is Cc-ing the linux-crypto mailing
list sufficient? The linux-crypto mailing list was Cc-ed for the entire patch
series as one can see here:
https://www.mail-archive.com/linux-crypto@vger.kernel.org/msg28485.html.

Thanks,

Bart.

Re: [PATCH v2 2/8] crypto: scompress - use sgl_alloc() and sgl_free()

2017-11-01 Thread Ard Biesheuvel
On 1 November 2017 at 14:50, Bart Van Assche  wrote:
> On Mon, 2017-10-16 at 15:49 -0700, Bart Van Assche wrote:
>> Use the sgl_alloc() and sgl_free() functions instead of open coding
>> these functions.
>>
>> Signed-off-by: Bart Van Assche 
>> Cc: Ard Biesheuvel 
>> Cc: Herbert Xu 
>
> Ard and/or Herbert, can you please have a look at this patch and let us know
> whether or not it looks fine to you?
>

The patch itself does not look unreasonable, but I can't find
sgl_alloc() anywhere in the source tree. Given that you have cc'ed me
on this patch only, I can only assume that you are adding this as part
of the series, but without any context, I can't really review this,
sorry.


Re: [PATCH v2 2/8] crypto: scompress - use sgl_alloc() and sgl_free()

2017-11-01 Thread Bart Van Assche
On Mon, 2017-10-16 at 15:49 -0700, Bart Van Assche wrote:
> Use the sgl_alloc() and sgl_free() functions instead of open coding
> these functions.
> 
> Signed-off-by: Bart Van Assche 
> Cc: Ard Biesheuvel 
> Cc: Herbert Xu 

Ard and/or Herbert, can you please have a look at this patch and let us know
whether or not it looks fine to you?

Thanks,

Bart.

Re: [PATCH] ata: fixes kernel crash while tracing ata_eh_link_autopsy event

2017-11-01 Thread Tejun Heo
Hello,

On Tue, Oct 31, 2017 at 08:52:44PM +0530, Rameshwar Sahu wrote:
> > probably should take both link and dev and use dev iff it's not NULL.
> >
> 
> Instead of this would it be better to call trace_ata_eh_link_autopsy() if
> dev is not NULL from ata error handler ??

Oh yeah, that'd work too and be probably better.

Thanks.

-- 
tejun


Re: [PATCH v2 6/8] scsi/ipr: Use sgl_alloc_order() and sgl_free_order()

2017-11-01 Thread Hannes Reinecke
On 10/30/2017 10:01 PM, Brian King wrote:
> On 10/30/2017 03:37 PM, Bart Van Assche wrote:
>> On Wed, 2017-10-18 at 15:57 -0500, Brian King wrote:
>>> On 10/17/2017 01:19 AM, Hannes Reinecke wrote:
 On 10/17/2017 12:49 AM, Bart Van Assche wrote:
> [ ... ]

 Not sure if this is a valid conversion.
 Originally the driver would allocate a single buffer; with this buffer
 we have two distinct buffers.
 Given that this is used to download the microcode I'm not sure if this
 isn't a hardware-dependent structure which requires a single buffer
 including the sglist.
 Brian, can you shed some light here?
>>>
>>> The struct ipr_sglist is not a hardware defined data structure, so on 
>>> initial
>>> glance, this should be OK. I'll load it up and give it a try to make sure
>>> it doesn't break code download.
>>
>> Hello Brian,
>>
>> Have you already obtained any test results?
> 
> Bart,
> 
> Yes. I tried this out on an ipr adapter and it looks fine.
> 
> Acked-by: Brian King 
> 
Thanks for the confirmation.

Bart, you can add my

Reviewed-by: Hannes Reinecke 

Cheers,

Hannes
-- 
Dr. Hannes ReineckeTeamlead Storage & Networking
h...@suse.de   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)


Re: system hung up when offlining CPUs

2017-11-01 Thread Hannes Reinecke
On 11/01/2017 01:47 AM, Thomas Gleixner wrote:
> On Mon, 30 Oct 2017, Shivasharan Srikanteshwara wrote:
> 
>> In managed-interrupts case, interrupts which were affine to the offlined
>> CPU is not getting migrated to another available CPU. But the
>> documentation at below link says that "all interrupts" are migrated to a
>> new CPU. So not all interrupts are getting migrated to a new CPU then.
> 
> Correct.
> 
>> https://www.kernel.org/doc/html/v4.11/core-api/cpu_hotplug.html#the-offlin
>> e-case
>> "- All interrupts targeted to this CPU are migrated to a new CPU"
> 
> Well, documentation is not always up to date :)
>  
>> Once the last CPU in the affinity mask is offlined and a particular IRQ
>> is shutdown, is there a way currently for the device driver to get
>> callback to complete all outstanding requests on that queue?
> 
> No and I have no idea how the other drivers deal with that.
> 
> The way you can do that is to have your own hotplug callback which is
> invoked when the cpu goes down, but way before the interrupt is shut down,
> which is one of the last steps. Ideally this would be a callback in the
> generic block code which then calls out to all instances like its done for
> the cpu dead state.
> 
In principle, yes, that would be (and, in fact, might already) moved to
the block layer for blk-mq, as this has full control over the individual
queues and hence can ensure that the queues with dead/removed CPUs are
properly handled.

Here, OTOH, we are dealing with the legacy sq implementation (or, to be
precised, a blk-mq implementation utilizing only a single queue), so
that any of this handling need to be implemented in the driver.

So what would need to be done here is to implement a hotplug callback in
the driver, which would disable the CPU from the list/bitmap of valid
cpus. Then the driver could validate the CPU number with this bitmap
upon I/O submission (instead of just using raw_smp_cpu_number()), and
could set the queue ID to '0' if an invalid CPU was found.
With that the driver should be able to ensure that no new I/O will be
submitted which will hit the dead CPU, so with a bit of luck this might
already solve the problem.

Alternatively I could resurrect my patchset converting the driver to
blk-mq, which got vetoed the last time ...

Cheers,

Hannes
-- 
Dr. Hannes ReineckeTeamlead Storage & Networking
h...@suse.de   +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: F. Imendörffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG Nürnberg)


Re: [PATCH] scsi: sas: Convert timers to use timer_setup()

2017-11-01 Thread Jinpu Wang
On Wed, Oct 25, 2017 at 12:08 PM, Kees Cook  wrote:
> In preparation for unconditionally passing the struct timer_list pointer to
> all timer callbacks, switch to using the new timer_setup() and from_timer()
> to pass the timer pointer explicitly. This requires adding a pointer to
> hold the timer's target task, as there isn't a link back from slow_task.
>
> Cc: John Garry 
> Cc: "James E.J. Bottomley" 
> Cc: "Martin K. Petersen" 
> Cc: Jack Wang 
> Cc: lindar_...@usish.com
> Cc: Jens Axboe 
> Cc: Hannes Reinecke 
> Cc: Johannes Thumshirn 
> Cc: Benjamin Block 
> Cc: Baoyou Xie 
> Cc: Wei Yongjun 
> Cc: linux-scsi@vger.kernel.org
> Signed-off-by: Kees Cook 
> ---
>  drivers/scsi/hisi_sas/hisi_sas.h   |  1 -
>  drivers/scsi/hisi_sas/hisi_sas_main.c  | 14 ++
>  drivers/scsi/hisi_sas/hisi_sas_v1_hw.c |  6 +++---
>  drivers/scsi/hisi_sas/hisi_sas_v2_hw.c | 24 +++-
>  drivers/scsi/hisi_sas/hisi_sas_v3_hw.c |  2 +-
>  drivers/scsi/libsas/sas_expander.c |  8 
>  drivers/scsi/libsas/sas_init.c |  3 ++-
>  drivers/scsi/libsas/sas_scsi_host.c|  2 +-
>  drivers/scsi/mvsas/mv_init.c   |  3 +--
>  drivers/scsi/mvsas/mv_sas.c| 15 +++
>  drivers/scsi/mvsas/mv_sas.h|  1 -
>  drivers/scsi/pm8001/pm8001_sas.c   | 11 +--
>  include/scsi/libsas.h  |  1 +
>  13 files changed, 42 insertions(+), 49 deletions(-)
>
> diff --git a/drivers/scsi/hisi_sas/hisi_sas.h 
> b/drivers/scsi/hisi_sas/hisi_sas.h
> index 07f4a4cfbec1..15692ea05ced 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas.h
> +++ b/drivers/scsi/hisi_sas/hisi_sas.h
> @@ -103,7 +103,6 @@ struct hisi_sas_phy {
> struct hisi_sas_port*port;
> struct asd_sas_phy  sas_phy;
> struct sas_identify identify;
> -   struct timer_list   timer;
> struct work_struct  phyup_ws;
> u64 port_id; /* from hw */
> u64 dev_sas_addr;
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_main.c 
> b/drivers/scsi/hisi_sas/hisi_sas_main.c
> index 9e2990268f00..0d772a83fbe4 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_main.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_main.c
> @@ -627,7 +627,6 @@ static void hisi_sas_phy_init(struct hisi_hba *hisi_hba, 
> int phy_no)
>
> phy->hisi_hba = hisi_hba;
> phy->port = NULL;
> -   init_timer(&phy->timer);
> sas_phy->enabled = (phy_no < hisi_hba->n_phy) ? 1 : 0;
> sas_phy->class = SAS;
> sas_phy->iproto = SAS_PROTOCOL_ALL;
> @@ -792,9 +791,10 @@ static void hisi_sas_task_done(struct sas_task *task)
> complete(&task->slow_task->completion);
>  }
>
> -static void hisi_sas_tmf_timedout(unsigned long data)
> +static void hisi_sas_tmf_timedout(struct timer_list *t)
>  {
> -   struct sas_task *task = (struct sas_task *)data;
> +   struct sas_task_slow *slow = from_timer(slow, t, timer);
> +   struct sas_task *task = slow->task;
> unsigned long flags;
>
> spin_lock_irqsave(&task->task_state_lock, flags);
> @@ -833,8 +833,7 @@ static int hisi_sas_exec_internal_tmf_task(struct 
> domain_device *device,
> }
> task->task_done = hisi_sas_task_done;
>
> -   task->slow_task->timer.data = (unsigned long) task;
> -   task->slow_task->timer.function = hisi_sas_tmf_timedout;
> +   task->slow_task->timer.function = 
> (TIMER_FUNC_TYPE)hisi_sas_tmf_timedout;
> task->slow_task->timer.expires = jiffies + TASK_TIMEOUT*HZ;
> add_timer(&task->slow_task->timer);
>
> @@ -1445,8 +1444,7 @@ hisi_sas_internal_task_abort(struct hisi_hba *hisi_hba,
> task->dev = device;
> task->task_proto = device->tproto;
> task->task_done = hisi_sas_task_done;
> -   task->slow_task->timer.data = (unsigned long)task;
> -   task->slow_task->timer.function = hisi_sas_tmf_timedout;
> +   task->slow_task->timer.function = 
> (TIMER_FUNC_TYPE)hisi_sas_tmf_timedout;
> task->slow_task->timer.expires = jiffies + msecs_to_jiffies(110);
> add_timer(&task->slow_task->timer);
>
> @@ -1875,7 +1873,7 @@ static struct Scsi_Host *hisi_sas_shost_alloc(struct 
> platform_device *pdev,
> hisi_hba->shost = shost;
> SHOST_TO_SAS_HA(shost) = &hisi_hba->sha;
>
> -   init_timer(&hisi_hba->timer);
> +   timer_setup(&hisi_hba->timer, NULL, 0);
>
> if (hisi_sas_get_fw_info(hisi_hba) < 0)
> goto err_out;
> diff --git a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c 
> b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> index 08eca20b0b81..9385554e43a6 100644
> --- a/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> +++ b/drivers/scsi/hisi_sas/hisi_sas_v1_hw.c
> @@ -807,9 +807,9 @@ static void phy_hard_reset_v1_hw(struct hisi_hba 
> *hisi_hba, int phy_no)
> start_phy_v1_hw(hisi_hba, phy_no);
>  }
>
> -static void start_phys_v1_hw(unsigned long data)
> +static void star

Re: [PATCH] scsi: qla4xxx: Convert timers to use timer_setup()

2017-11-01 Thread Rangankar, Manish

On 25/10/17 3:37 PM, "Kees Cook"  wrote:

>In preparation for unconditionally passing the struct timer_list pointer
>to
>all timer callbacks, switch to using the new timer_setup() and
>from_timer()
>to pass the timer pointer explicitly.
>
>Cc: qlogic-storage-upstr...@qlogic.com
>Cc: "James E.J. Bottomley" 
>Cc: "Martin K. Petersen" 
>Cc: linux-scsi@vger.kernel.org
>Signed-off-by: Kees Cook 
>---
> drivers/scsi/qla4xxx/ql4_os.c | 12 ++--
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
>diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
>index 64c6fa563fdb..2b8a8ce2a431 100644
>--- a/drivers/scsi/qla4xxx/ql4_os.c
>+++ b/drivers/scsi/qla4xxx/ql4_os.c
>@@ -3955,16 +3955,15 @@ void qla4xxx_update_session_conn_param(struct
>scsi_qla_host *ha,
> /*
>  * Timer routines
>  */
>+static void qla4xxx_timer(struct timer_list *t);
> 
>-static void qla4xxx_start_timer(struct scsi_qla_host *ha, void *func,
>+static void qla4xxx_start_timer(struct scsi_qla_host *ha,
>   unsigned long interval)
> {
>   DEBUG(printk("scsi: %s: Starting timer thread for adapter %d\n",
>__func__, ha->host->host_no));
>-  init_timer(&ha->timer);
>+  timer_setup(&ha->timer, qla4xxx_timer, 0);
>   ha->timer.expires = jiffies + interval * HZ;
>-  ha->timer.data = (unsigned long)ha;
>-  ha->timer.function = (void (*)(unsigned long))func;
>   add_timer(&ha->timer);
>   ha->timer_active = 1;
> }
>@@ -4508,8 +4507,9 @@ static void qla4xxx_check_relogin_flash_ddb(struct
>iscsi_cls_session *cls_sess)
>  * qla4xxx_timer - checks every second for work to do.
>  * @ha: Pointer to host adapter structure.
>  **/
>-static void qla4xxx_timer(struct scsi_qla_host *ha)
>+static void qla4xxx_timer(struct timer_list *t)
> {
>+  struct scsi_qla_host *ha = from_timer(ha, t, timer);
>   int start_dpc = 0;
>   uint16_t w;
> 
>@@ -8805,7 +8805,7 @@ static int qla4xxx_probe_adapter(struct pci_dev
>*pdev,
>   ha->isp_ops->enable_intrs(ha);
> 
>   /* Start timer thread. */
>-  qla4xxx_start_timer(ha, qla4xxx_timer, 1);
>+  qla4xxx_start_timer(ha, 1);
> 
>   set_bit(AF_INIT_DONE, &ha->flags);
> 
>-- 
>2.7.4


Acked-by: Manish Rangankar