| US 7,475,166 B2 | ||
| Method and system for fully trusted adapter validation of addresses referenced in a virtual host transfer request | ||
| Richard Louis Arndt, Austin, Tex. (US); Giora Biran, Zichron-Yaakov (Israel); Harvey Gene Kiel, Rochester, Minn. (US); Vadim Makhervaks, Austin, Tex. (US); Renato John Recio, Austin, Tex. (US); Leah Shalev, Zichron-Yaakov (Israel); and Jaya Srikrishnan, Wappingers Falls, N.Y. (US) | ||
| Assigned to International Business Machines Corporation, Armonk, N.Y. (US) | ||
| Filed on Feb. 28, 2005, as Appl. No. 11/68,664. | ||
| Prior Publication US 2006/0209724 A1, Sep. 21, 2006 | ||
| Int. Cl. G06F 3/00 (2006.01); G06F 13/28 (2006.01); G06F 13/00 (2006.01); G06F 12/00 (2006.01); G06F 12/14 (2006.01); G06F 13/36 (2006.01); G06F 11/00 (2006.01); G06F 15/173 (2006.01); G06F 9/46 (2006.01); G06F 9/44 (2006.01); H04L 12/26 (2006.01); H04L 12/28 (2006.01); H04L 12/56 (2006.01) | ||
| U.S. Cl. 710—23 [710/1; 710/5; 710/10; 710/28; 710/36; 710/100; 710/200; 710/306; 714/1; 714/53; 718/104; 718/100; 717/131; 719/310; 719/321; 370/241; 370/469; 370/409; 370/252; 711/151; 709/238] | 8 Claims |

| 1. A method of validating operations in a logically partitioned data processing system, the method comprising the computer
implemented steps of:
running, by a computer system, a plurality of virtual hosts within the computer system, the computer system including a physical
input/output (I/O) adapter;
each one of the plurality of virtual hosts executing an operating system independently from operating systems being executed
by other ones of the virtual hosts;
for each one of the plurality of virtual hosts, allocating a subset of the physical I/O adapter's resources to the one of
the plurality of virtual hosts to use as an associated virtual I/O adapter;
receiving, by the physical I/O adapter from one of the plurality of virtual hosts, an input/output operation that includes
a virtual host identifier; and
determining, by the physical I/O adapter, whether the one of the plurality of virtual hosts is attempting to access the virtual
I/O adapter that is associated with the one of the plurality of virtual hosts by:
using, by the physical I/O adapter, the virtual host identifier to look up a data structure that is stored only within the
physical I/O adapter, wherein the data structure is associated with only the one of the plurality of virtual hosts and points
to an address space associated with the one of the plurality of virtual hosts, wherein the address space is stored only within
the physical I/O adapter;
responsive to looking up the data structure: identifying, by the physical I/O adapter, a direct memory access address in a
work queue data structure associated with the input/output operation;
comparing, by the physical I/O adapter, the direct memory access address with the address space; and
responsive to comparing the direct memory access address, determining, by the physical I/O adapter, if the input/output operation
is valid.
|