You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc-merge
Fix up delete/modify conflict of arch/ppc/kernel/process.c by hand (it's gone, gone, gone). Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
+15
-17
@@ -293,6 +293,7 @@ static int send_request(struct request *req)
|
||||
u16 viocmd;
|
||||
HvLpEvent_Rc hvrc;
|
||||
struct vioblocklpevent *bevent;
|
||||
struct HvLpEvent *hev;
|
||||
struct scatterlist sg[VIOMAXBLOCKDMA];
|
||||
int sgindex;
|
||||
int statindex;
|
||||
@@ -347,22 +348,19 @@ static int send_request(struct request *req)
|
||||
* token so we can match the response up later
|
||||
*/
|
||||
memset(bevent, 0, sizeof(struct vioblocklpevent));
|
||||
bevent->event.xFlags.xValid = 1;
|
||||
bevent->event.xFlags.xFunction = HvLpEvent_Function_Int;
|
||||
bevent->event.xFlags.xAckInd = HvLpEvent_AckInd_DoAck;
|
||||
bevent->event.xFlags.xAckType = HvLpEvent_AckType_ImmediateAck;
|
||||
bevent->event.xType = HvLpEvent_Type_VirtualIo;
|
||||
bevent->event.xSubtype = viocmd;
|
||||
bevent->event.xSourceLp = HvLpConfig_getLpIndex();
|
||||
bevent->event.xTargetLp = viopath_hostLp;
|
||||
bevent->event.xSizeMinus1 =
|
||||
hev = &bevent->event;
|
||||
hev->flags = HV_LP_EVENT_VALID | HV_LP_EVENT_DO_ACK |
|
||||
HV_LP_EVENT_INT;
|
||||
hev->xType = HvLpEvent_Type_VirtualIo;
|
||||
hev->xSubtype = viocmd;
|
||||
hev->xSourceLp = HvLpConfig_getLpIndex();
|
||||
hev->xTargetLp = viopath_hostLp;
|
||||
hev->xSizeMinus1 =
|
||||
offsetof(struct vioblocklpevent, u.rw_data.dma_info) +
|
||||
(sizeof(bevent->u.rw_data.dma_info[0]) * nsg) - 1;
|
||||
bevent->event.xSourceInstanceId =
|
||||
viopath_sourceinst(viopath_hostLp);
|
||||
bevent->event.xTargetInstanceId =
|
||||
viopath_targetinst(viopath_hostLp);
|
||||
bevent->event.xCorrelationToken = (u64)req;
|
||||
hev->xSourceInstanceId = viopath_sourceinst(viopath_hostLp);
|
||||
hev->xTargetInstanceId = viopath_targetinst(viopath_hostLp);
|
||||
hev->xCorrelationToken = (u64)req;
|
||||
bevent->version = VIOVERSION;
|
||||
bevent->disk = DEVICE_NO(d);
|
||||
bevent->u.rw_data.offset = start;
|
||||
@@ -649,10 +647,10 @@ static void handle_block_event(struct HvLpEvent *event)
|
||||
/* Notification that a partition went away! */
|
||||
return;
|
||||
/* First, we should NEVER get an int here...only acks */
|
||||
if (event->xFlags.xFunction == HvLpEvent_Function_Int) {
|
||||
if (hvlpevent_is_int(event)) {
|
||||
printk(VIOD_KERN_WARNING
|
||||
"Yikes! got an int in viodasd event handler!\n");
|
||||
if (event->xFlags.xAckInd == HvLpEvent_AckInd_DoAck) {
|
||||
if (hvlpevent_need_ack(event)) {
|
||||
event->xRc = HvLpEvent_Rc_InvalidSubtype;
|
||||
HvCallEvent_ackLpEvent(event);
|
||||
}
|
||||
@@ -695,7 +693,7 @@ static void handle_block_event(struct HvLpEvent *event)
|
||||
|
||||
default:
|
||||
printk(VIOD_KERN_WARNING "invalid subtype!");
|
||||
if (event->xFlags.xAckInd == HvLpEvent_AckInd_DoAck) {
|
||||
if (hvlpevent_need_ack(event)) {
|
||||
event->xRc = HvLpEvent_Rc_InvalidSubtype;
|
||||
HvCallEvent_ackLpEvent(event);
|
||||
}
|
||||
|
||||
@@ -542,10 +542,10 @@ static void vio_handle_cd_event(struct HvLpEvent *event)
|
||||
/* Notification that a partition went away! */
|
||||
return;
|
||||
/* First, we should NEVER get an int here...only acks */
|
||||
if (event->xFlags.xFunction == HvLpEvent_Function_Int) {
|
||||
if (hvlpevent_is_int(event)) {
|
||||
printk(VIOCD_KERN_WARNING
|
||||
"Yikes! got an int in viocd event handler!\n");
|
||||
if (event->xFlags.xAckInd == HvLpEvent_AckInd_DoAck) {
|
||||
if (hvlpevent_need_ack(event)) {
|
||||
event->xRc = HvLpEvent_Rc_InvalidSubtype;
|
||||
HvCallEvent_ackLpEvent(event);
|
||||
}
|
||||
@@ -616,7 +616,7 @@ return_complete:
|
||||
printk(VIOCD_KERN_WARNING
|
||||
"message with invalid subtype %0x04X!\n",
|
||||
event->xSubtype & VIOMINOR_SUBTYPE_MASK);
|
||||
if (event->xFlags.xAckInd == HvLpEvent_AckInd_DoAck) {
|
||||
if (hvlpevent_need_ack(event)) {
|
||||
event->xRc = HvLpEvent_Rc_InvalidSubtype;
|
||||
HvCallEvent_ackLpEvent(event);
|
||||
}
|
||||
|
||||
+4
-4
@@ -534,7 +534,7 @@ static ssize_t write_kmem(struct file * file, const char __user * buf,
|
||||
return virtr + wrote;
|
||||
}
|
||||
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
static ssize_t read_port(struct file * file, char __user * buf,
|
||||
size_t count, loff_t *ppos)
|
||||
{
|
||||
@@ -795,7 +795,7 @@ static struct file_operations null_fops = {
|
||||
.write = write_null,
|
||||
};
|
||||
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
static struct file_operations port_fops = {
|
||||
.llseek = memory_lseek,
|
||||
.read = read_port,
|
||||
@@ -865,7 +865,7 @@ static int memory_open(struct inode * inode, struct file * filp)
|
||||
case 3:
|
||||
filp->f_op = &null_fops;
|
||||
break;
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
case 4:
|
||||
filp->f_op = &port_fops;
|
||||
break;
|
||||
@@ -912,7 +912,7 @@ static const struct {
|
||||
{1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops},
|
||||
{2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops},
|
||||
{3, "null", S_IRUGO | S_IWUGO, &null_fops},
|
||||
#if (defined(CONFIG_ISA) || !defined(__mc68000__)) && (!defined(CONFIG_PPC_ISERIES) || defined(CONFIG_PCI))
|
||||
#if defined(CONFIG_ISA) || !defined(__mc68000__)
|
||||
{4, "port", S_IRUSR | S_IWUSR | S_IRGRP, &port_fops},
|
||||
#endif
|
||||
{5, "zero", S_IRUGO | S_IWUGO, &zero_fops},
|
||||
|
||||
+15
-16
@@ -476,19 +476,19 @@ static struct port_info *get_port_data(struct tty_struct *tty)
|
||||
*/
|
||||
static void initDataEvent(struct viocharlpevent *viochar, HvLpIndex lp)
|
||||
{
|
||||
struct HvLpEvent *hev = &viochar->event;
|
||||
|
||||
memset(viochar, 0, sizeof(struct viocharlpevent));
|
||||
|
||||
viochar->event.xFlags.xValid = 1;
|
||||
viochar->event.xFlags.xFunction = HvLpEvent_Function_Int;
|
||||
viochar->event.xFlags.xAckInd = HvLpEvent_AckInd_NoAck;
|
||||
viochar->event.xFlags.xAckType = HvLpEvent_AckType_DeferredAck;
|
||||
viochar->event.xType = HvLpEvent_Type_VirtualIo;
|
||||
viochar->event.xSubtype = viomajorsubtype_chario | viochardata;
|
||||
viochar->event.xSourceLp = HvLpConfig_getLpIndex();
|
||||
viochar->event.xTargetLp = lp;
|
||||
viochar->event.xSizeMinus1 = sizeof(struct viocharlpevent);
|
||||
viochar->event.xSourceInstanceId = viopath_sourceinst(lp);
|
||||
viochar->event.xTargetInstanceId = viopath_targetinst(lp);
|
||||
hev->flags = HV_LP_EVENT_VALID | HV_LP_EVENT_DEFERRED_ACK |
|
||||
HV_LP_EVENT_INT;
|
||||
hev->xType = HvLpEvent_Type_VirtualIo;
|
||||
hev->xSubtype = viomajorsubtype_chario | viochardata;
|
||||
hev->xSourceLp = HvLpConfig_getLpIndex();
|
||||
hev->xTargetLp = lp;
|
||||
hev->xSizeMinus1 = sizeof(struct viocharlpevent);
|
||||
hev->xSourceInstanceId = viopath_sourceinst(lp);
|
||||
hev->xTargetInstanceId = viopath_targetinst(lp);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -752,7 +752,7 @@ static void vioHandleOpenEvent(struct HvLpEvent *event)
|
||||
struct port_info *pi;
|
||||
int reject = 0;
|
||||
|
||||
if (event->xFlags.xFunction == HvLpEvent_Function_Ack) {
|
||||
if (hvlpevent_is_ack(event)) {
|
||||
if (port >= VTTY_PORTS)
|
||||
return;
|
||||
|
||||
@@ -788,7 +788,7 @@ static void vioHandleOpenEvent(struct HvLpEvent *event)
|
||||
}
|
||||
|
||||
/* This had better require an ack, otherwise complain */
|
||||
if (event->xFlags.xAckInd != HvLpEvent_AckInd_DoAck) {
|
||||
if (!hvlpevent_need_ack(event)) {
|
||||
printk(VIOCONS_KERN_WARN "viocharopen without ack bit!\n");
|
||||
return;
|
||||
}
|
||||
@@ -856,7 +856,7 @@ static void vioHandleCloseEvent(struct HvLpEvent *event)
|
||||
struct viocharlpevent *cevent = (struct viocharlpevent *)event;
|
||||
u8 port = cevent->virtual_device;
|
||||
|
||||
if (event->xFlags.xFunction == HvLpEvent_Function_Int) {
|
||||
if (hvlpevent_is_int(event)) {
|
||||
if (port >= VTTY_PORTS) {
|
||||
printk(VIOCONS_KERN_WARN
|
||||
"close message from invalid virtual device.\n");
|
||||
@@ -1056,8 +1056,7 @@ static void vioHandleCharEvent(struct HvLpEvent *event)
|
||||
vioHandleConfig(event);
|
||||
break;
|
||||
default:
|
||||
if ((event->xFlags.xFunction == HvLpEvent_Function_Int) &&
|
||||
(event->xFlags.xAckInd == HvLpEvent_AckInd_DoAck)) {
|
||||
if (hvlpevent_is_int(event) && hvlpevent_need_ack(event)) {
|
||||
event->xRc = HvLpEvent_Rc_InvalidSubtype;
|
||||
HvCallEvent_ackLpEvent(event);
|
||||
}
|
||||
|
||||
@@ -590,9 +590,9 @@ static void veth_handle_event(struct HvLpEvent *event, struct pt_regs *regs)
|
||||
{
|
||||
struct veth_lpevent *veth_event = (struct veth_lpevent *)event;
|
||||
|
||||
if (event->xFlags.xFunction == HvLpEvent_Function_Ack)
|
||||
if (hvlpevent_is_ack(event))
|
||||
veth_handle_ack(veth_event);
|
||||
else if (event->xFlags.xFunction == HvLpEvent_Function_Int)
|
||||
else
|
||||
veth_handle_int(veth_event);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user