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
OG exemplary drawing
 
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.