Skip to content

Commit

Permalink
Staging: hv: remove wrapper functions for bit operations
Browse files Browse the repository at this point in the history
There were several Bit* functions that did nothing but call the kernel
functions with the parameters reversed.  Remove these and call the
functions directly.

Signed-off-by: Bill Pemberton <wfp5p@virginia.edu>
Cc: Hank Janssen <hjanssen@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Bill Pemberton authored and Greg Kroah-Hartman committed Sep 15, 2009
1 parent 420beac commit 7c369f4
Show file tree
Hide file tree
Showing 5 changed files with 15 additions and 40 deletions.
14 changes: 10 additions & 4 deletions drivers/staging/hv/Channel.c
Original file line number Diff line number Diff line change
Expand Up @@ -104,12 +104,16 @@ VmbusChannelSetEvent(
if (Channel->OfferMsg.MonitorAllocated)
{
/* Each u32 represents 32 channels */
BitSet((u32*)gVmbusConnection.SendInterruptPage + (Channel->OfferMsg.ChildRelId >> 5), Channel->OfferMsg.ChildRelId & 31);
set_bit(Channel->OfferMsg.ChildRelId & 31,
(unsigned long *) gVmbusConnection.SendInterruptPage +
(Channel->OfferMsg.ChildRelId >> 5) );

monitorPage = (HV_MONITOR_PAGE*)gVmbusConnection.MonitorPages;
monitorPage++; /* Get the child to parent monitor page */

BitSet((u32*) &monitorPage->TriggerGroup[Channel->MonitorGroup].Pending, Channel->MonitorBit);
set_bit(Channel->MonitorBit,
(unsigned long *) &monitorPage->TriggerGroup[Channel->MonitorGroup].Pending);

}
else
{
Expand All @@ -132,12 +136,14 @@ VmbusChannelClearEvent(
if (Channel->OfferMsg.MonitorAllocated)
{
/* Each u32 represents 32 channels */
BitClear((u32*)gVmbusConnection.SendInterruptPage + (Channel->OfferMsg.ChildRelId >> 5), Channel->OfferMsg.ChildRelId & 31);
clear_bit(Channel->OfferMsg.ChildRelId & 31,
(unsigned long *) gVmbusConnection.SendInterruptPage + (Channel->OfferMsg.ChildRelId >> 5));

monitorPage = (HV_MONITOR_PAGE*)gVmbusConnection.MonitorPages;
monitorPage++; /* Get the child to parent monitor page */

BitClear((u32*) &monitorPage->TriggerGroup[Channel->MonitorGroup].Pending, Channel->MonitorBit);
clear_bit(Channel->MonitorBit,
(unsigned long *) &monitorPage->TriggerGroup[Channel->MonitorGroup].Pending);
}

DPRINT_EXIT(VMBUS);
Expand Down
6 changes: 4 additions & 2 deletions drivers/staging/hv/Connection.c
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ VmbusOnEvents(
{
for (bit = 0; bit < 32; bit++)
{
if (BitTestAndClear(&recvInterruptPage[dword], bit))
if (test_and_clear_bit(bit, (unsigned long *) &recvInterruptPage[dword]))
{
relid = (dword << 5) + bit;

Expand Down Expand Up @@ -432,7 +432,9 @@ VmbusSetEvent(u32 childRelId)
DPRINT_ENTER(VMBUS);

/* Each u32 represents 32 channels */
BitSet((u32*)gVmbusConnection.SendInterruptPage + (childRelId >> 5), childRelId & 31);
set_bit(childRelId & 31,
(unsigned long *) gVmbusConnection.SendInterruptPage + (childRelId >> 5));

ret = HvSignalEvent();

DPRINT_EXIT(VMBUS);
Expand Down
2 changes: 1 addition & 1 deletion drivers/staging/hv/Vmbus.c
Original file line number Diff line number Diff line change
Expand Up @@ -511,7 +511,7 @@ VmbusOnISR(
event = (HV_SYNIC_EVENT_FLAGS*)page_addr + VMBUS_MESSAGE_SINT;

/* Since we are a child, we only need to check bit 0 */
if (BitTestAndClear(&event->Flags32[0], 0))
if (test_and_clear_bit(0, (unsigned long *) &event->Flags32[0]))
{
DPRINT_DBG(VMBUS, "received event %d", event->Flags32[0]);
ret |= 0x2;
Expand Down
6 changes: 0 additions & 6 deletions drivers/staging/hv/include/osd.h
Original file line number Diff line number Diff line change
Expand Up @@ -109,12 +109,6 @@ static inline void do_cpuid(unsigned int op, unsigned int *eax, unsigned int *eb

/* Osd routines */

extern void BitSet(unsigned int* addr, int value);
extern void BitClear(unsigned int* addr, int value);
extern int BitTest(unsigned int* addr, int value);
extern int BitTestAndClear(unsigned int* addr, int value);
extern int BitTestAndSet(unsigned int* addr, int value);

extern int InterlockedIncrement(int *val);
extern int InterlockedDecrement(int *val);
extern int InterlockedCompareExchange(int *val, int new, int curr);
Expand Down
27 changes: 0 additions & 27 deletions drivers/staging/hv/osd.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,33 +56,6 @@ struct osd_callback_struct {
void *data;
};


void BitSet(unsigned int* addr, int bit)
{
set_bit(bit, (unsigned long*)addr);
}

int BitTest(unsigned int* addr, int bit)
{
return test_bit(bit, (unsigned long*)addr);
}

void BitClear(unsigned int* addr, int bit)
{
clear_bit(bit, (unsigned long*)addr);
}

int BitTestAndClear(unsigned int* addr, int bit)
{
return test_and_clear_bit(bit, (unsigned long*)addr);
}

int BitTestAndSet(unsigned int* addr, int bit)
{
return test_and_set_bit(bit, (unsigned long*)addr);
}


int InterlockedIncrement(int *val)
{
return atomic_inc_return((atomic_t*)val);
Expand Down

0 comments on commit 7c369f4

Please sign in to comment.