mirror of https://gitee.com/openkylin/linux.git
s390: cio driver &__get_cpu_var replacements
Use this_cpu_ptr() instead of &__get_cpu_var() Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
eb7e7d7663
commit
0bf7fcf155
|
@ -252,7 +252,7 @@ static void ccwreq_log_status(struct ccw_device *cdev, enum io_status status)
|
|||
*/
|
||||
void ccw_request_handler(struct ccw_device *cdev)
|
||||
{
|
||||
struct irb *irb = &__get_cpu_var(cio_irb);
|
||||
struct irb *irb = this_cpu_ptr(&cio_irb);
|
||||
struct ccw_request *req = &cdev->private->req;
|
||||
enum io_status status;
|
||||
int rc = -EOPNOTSUPP;
|
||||
|
|
|
@ -58,7 +58,7 @@ static void chsc_subchannel_irq(struct subchannel *sch)
|
|||
{
|
||||
struct chsc_private *private = dev_get_drvdata(&sch->dev);
|
||||
struct chsc_request *request = private->request;
|
||||
struct irb *irb = &__get_cpu_var(cio_irb);
|
||||
struct irb *irb = this_cpu_ptr(&cio_irb);
|
||||
|
||||
CHSC_LOG(4, "irb");
|
||||
CHSC_LOG_HEX(4, irb, sizeof(*irb));
|
||||
|
|
|
@ -563,7 +563,7 @@ static irqreturn_t do_cio_interrupt(int irq, void *dummy)
|
|||
|
||||
__this_cpu_write(s390_idle.nohz_delay, 1);
|
||||
tpi_info = (struct tpi_info *) &get_irq_regs()->int_code;
|
||||
irb = &__get_cpu_var(cio_irb);
|
||||
irb = this_cpu_ptr(&cio_irb);
|
||||
sch = (struct subchannel *)(unsigned long) tpi_info->intparm;
|
||||
if (!sch) {
|
||||
/* Clear pending interrupt condition. */
|
||||
|
@ -613,7 +613,7 @@ void cio_tsch(struct subchannel *sch)
|
|||
struct irb *irb;
|
||||
int irq_context;
|
||||
|
||||
irb = &__get_cpu_var(cio_irb);
|
||||
irb = this_cpu_ptr(&cio_irb);
|
||||
/* Store interrupt response block to lowcore. */
|
||||
if (tsch(sch->schid, irb) != 0)
|
||||
/* Not status pending or not operational. */
|
||||
|
@ -751,7 +751,7 @@ __clear_io_subchannel_easy(struct subchannel_id schid)
|
|||
struct tpi_info ti;
|
||||
|
||||
if (tpi(&ti)) {
|
||||
tsch(ti.schid, &__get_cpu_var(cio_irb));
|
||||
tsch(ti.schid, this_cpu_ptr(&cio_irb));
|
||||
if (schid_equal(&ti.schid, &schid))
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -739,7 +739,7 @@ ccw_device_irq(struct ccw_device *cdev, enum dev_event dev_event)
|
|||
struct irb *irb;
|
||||
int is_cmd;
|
||||
|
||||
irb = &__get_cpu_var(cio_irb);
|
||||
irb = this_cpu_ptr(&cio_irb);
|
||||
is_cmd = !scsw_is_tm(&irb->scsw);
|
||||
/* Check for unsolicited interrupt. */
|
||||
if (!scsw_is_solicited(&irb->scsw)) {
|
||||
|
@ -805,7 +805,7 @@ ccw_device_w4sense(struct ccw_device *cdev, enum dev_event dev_event)
|
|||
{
|
||||
struct irb *irb;
|
||||
|
||||
irb = &__get_cpu_var(cio_irb);
|
||||
irb = this_cpu_ptr(&cio_irb);
|
||||
/* Check for unsolicited interrupt. */
|
||||
if (scsw_stctl(&irb->scsw) ==
|
||||
(SCSW_STCTL_STATUS_PEND | SCSW_STCTL_ALERT_STATUS)) {
|
||||
|
|
|
@ -134,7 +134,7 @@ static void eadm_subchannel_irq(struct subchannel *sch)
|
|||
{
|
||||
struct eadm_private *private = get_eadm_private(sch);
|
||||
struct eadm_scsw *scsw = &sch->schib.scsw.eadm;
|
||||
struct irb *irb = &__get_cpu_var(cio_irb);
|
||||
struct irb *irb = this_cpu_ptr(&cio_irb);
|
||||
int error = 0;
|
||||
|
||||
EADM_LOG(6, "irq");
|
||||
|
|
Loading…
Reference in New Issue